Open
Description
CLDR and ICU4C both use July 15, 622 CE as the start of the epoch for the Islamic observational calendar:
- https://github.com/unicode-org/cldr/blob/c1dc8c7ef6584668345cf741e51b1722d8114bc8/common/supplemental/supplementalData.xml#L4682-L4711
- https://github.com/unicode-org/icu/blob/3235c38f24711a86d7fc5adf5e536bf6a4f1d10a/icu4c/source/i18n/islamcal.h#L33-L36
Whereas ICU4X uses July 16, 622 CE:
icu4x/utils/calendrical_calculations/src/islamic.rs
Lines 7 to 9 in 5e7585c
Does it make sense to align ICU4X with CLDR/ICU4C?
According to CLDR, only "islamic-civil" should use July 16, 622 CE, but interestingly ICU4C also uses July 16, 622 CE for "islamic-umalqura". When calling ICU4C through Intl.DateTimeFormat
:
js> new Intl.DateTimeFormat("en", {calendar:"islamic", timeZone:"UTC"}).format(Date.parse("0622-07-19T00:00:00.000Z"))
"1/2/1 AH"
js> new Intl.DateTimeFormat("en", {calendar:"islamic-civil", timeZone:"UTC"}).format(Date.parse("0622-07-19T00:00:00.000Z"))
"1/1/1 AH"
js> new Intl.DateTimeFormat("en", {calendar:"islamic-tbla", timeZone:"UTC"}).format(Date.parse("0622-07-19T00:00:00.000Z"))
"1/2/1 AH"
js> new Intl.DateTimeFormat("en", {calendar:"islamic-umalqura", timeZone:"UTC"}).format(Date.parse("0622-07-19T00:00:00.000Z"))
"1/1/1 AH"
In comparison when implementing Temporal
using ICU4X:
js> Temporal.PlainDate.from({calendar:"islamic", year: 1, month: 1, day: 1}).toString()
"0622-07-19[u-ca=islamic]"
js> Temporal.PlainDate.from({calendar:"islamic-civil", year: 1, month: 1, day: 1}).toString()
"0622-07-19[u-ca=islamic-civil]"
js> Temporal.PlainDate.from({calendar:"islamic-tbla", year: 1, month: 1, day: 1}).toString()
"0622-07-18[u-ca=islamic-tbla]"
js> Temporal.PlainDate.from({calendar:"islamic-umalqura", year: 1, month: 1, day: 1}).toString()
"0622-07-18[u-ca=islamic-umalqura]"