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)
目前尚未实施。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 发出拉取请求,但我怀疑他们会接受非本地化的解决方案。
| 归档时间: |
|
| 查看次数: |
1469 次 |
| 最近记录: |