如何在Joda Time中使用中国历系统?

How to use the Chinese calendar system in Joda Time?

我正在开发一个日历应用程序,需要将日期从其他日历系统转换为公历日期。所以我决定使用JodaTime。

很快我发现不同的日历系统被表示为Chronologys。我查看了 Chronology 的列表,没有看到任何关于中国历法系统也就是农历的信息。然后我搜索 "Lunar Calendar Joda Time" 并看到 IslamicChronology 但我不认为这是正确的,因为它在页面上说这是在穆斯林国家使用的。

所以我不太确定如何使用 Joda Time 使用中国日历系统。我还查看了另一个 Stack Overflow post,它建议我应该使用另一个库。但是,Joda Time 似乎没有支持该库的接口,这意味着我无法保持一致。有些项目我使用了 Joda Time,有些则没有。这对我来说听起来很奇怪。

据我所知,唯一支持的库是 ICU4J。该库的一个优势是扩展了 i18n 支持。缺点是 API 本身类似于 java.util.Calendar.

Joda-Time 不支持它,也没有计划(因为它是一个正式的 "largely finished" 项目,项目所有者建议在 Threeten-Extra 的基础上实现任何新的日历,并欢迎任何contributions of the community)。从头开始在 Joda-Time 的基础上实现它也不是那么容易——这是 Joda-Time 不支持这么多日历的重要原因。 I18n也不是强项。

我的图书馆 Time4J 肯定会在未来实现它,包括 i18n-features(可能是明年,因为我的工作能力有限)所以你可以在那里观看任何 activities

JDK-bug-log 中也有一个 very old issue。我认为我们对 JDK 实施此日历的希望趋于零。很抱歉否定的回答。

2018-03-07 更新:

仍然没有来自 Joda 的消息,但现在我的库 Time4J 终于支持 Chinese calendar 提供更准确的 ICU4J 替代方案。