关于历法背景:
埃塞俄比亚日历是一种地方日历,在埃塞俄比亚本身也有一定的知名度。是的,这个国家甚至有一种特殊的计时模式,从早上6点开始。但是,我不确定日历是否也在手机上广泛传播,因为在Android,IOS或Windows等常见操作系统中缺乏足够的支持。在埃塞俄比亚以外,它可能只与散居海外的有宗教信仰的埃塞俄比亚人有关。
安卓系统支持:
您可以找到 IBM 提供的 EthiopicCalendar 类提供的一些支持。我强烈认为阿姆哈拉语数字是受支持的(但我并不完全确定)。我对支持早上6点作为一天的开始并计数为零(如果您要求当前日期相关)不太有信心。IBM表示(与标准用法相似但不完全相同):Calendar.getInstance()
EthiopicCalendar通常应该使用Calendar.getInstance(ULocale)实例化,该ULocale传递带有标签“@calendar=ethiopic”的ULocale。
IBM 的 API 通过自 1970-01-01T00:00Z 以来的计数毫秒数提供公历的转换,反之亦然。要格式化或解析,请使用 IBM 的专用格式化程序引擎。注意,它不是Android的标准格式化引擎。当然,您仍然需要担心奇怪的功能,例如将第一个月计为数字零(而不是一)。
备选库时间4A:
我的库Time4A也是为Android编写的,是主lib Time4J的姊妹项目。两个库都包含埃塞俄比亚日历和埃塞俄比亚时间类。您将在javadoc中找到一些代码示例。对非十进制阿姆哈拉语数字的支持也存在。这些类也需要一个特殊的格式化引擎,称为ChronoFormatter。与IBM一样,埃塞俄比亚月份名称(甚至在阿姆哈拉语或其他语言中)也得到了很好的支持。Meskerem
可以通过表达式获得到公历的转换(反之亦然),其中参数表示目标日历(此处为公历类型)。ethiopianDate.transform(PlainDate.axis())
PlainDate