伊斯兰日期的Joda-Time格式

inf*_*op_ 14 java date jodatime

我正在使用Joda-Time在dd MMMM yyyy中获得伊斯兰日期,但我总是得到dd MM yyyy.

有什么建议吗?可能是Hijri日期不支持格式化吗?在Joda-Time网站上还不清楚.

 DateTime dtISO = new DateTime(2014,2,25,0,0,0,0);
 DateTime dtIslamic = dtISO.withChronology(IslamicChronology.getInstance());
 String formatIslamic= "dd MMMM yyyy";
 DateTimeFormatter formatter = DateTimeFormat.forPattern(formatIslamic).withChronology( IslamicChronology.getInstance());
 String islamicDateString = formatter.print(dtIslamic);
Run Code Online (Sandbox Code Playgroud)

Zek*_*eki 3

目前尚未实施。BasicChronology 类将monthOfYear 字段设置为使用GJMonthOfYearDateTimeField,后者又从java.text.DateFormatSymbols 获取其数据。IslamChronology 使用将 MonthOfYear 字段设置为 BasicMonthOfYearDateTimeField ,该字段具有以下 getAsText 实现:

public String getAsText(int fieldValue, Locale locale) {
    return Integer.toString(fieldValue);
}
Run Code Online (Sandbox Code Playgroud)

人们需要做的是创建一个 IslamMonthOfYearDateTimeField ,它扩展 BasicMonthOfYearDateTimeField 并重写该方法,以便它返回月份的名称而不是月份的数值。这可以在 joda-time 代码库中完成,也可以完全在外部完成。要使其在 joda 之外工作,只需扩展 IslamChronology 并覆盖 assemble 即可引入新的 IslamMonthOfYearDateTimeField。我会自己向 joda-time 发出拉取请求,但我怀疑他们会接受非本地化的解决方案。