1

我在 Android 中使用 Joda Time 2.9.9。当 Locale 设置为英语时,调用 likedatetime.monthOfYear().getAsText(locale)并分别datetime.monthOfYear().getAsShortText(locale)返回格式为 likeFebruary和的字符串Feb

但是当语言环境是西班牙语(es)时,它会返回诸如february和之类的字符串feb.(实际值是西班牙语,我翻译了它们)。

在使用其他语言环境时,有什么方法可以使它返回格式良好的字符串,大写且不带点?

还有一个额外的问题:如果没有办法,子类化 datetime 类并格式化字符串是个好主意吗?

4

1 回答 1

1

Joda-Time 从 JVM 获取此信息,DateFormatSymbols我不确定是否可以通过 API 替换这些信息(可能您可以使用反射来完成,但我个人不喜欢在生产代码中做这些事情)。

无论如何,我认为您可以调整在这个问题中找到的解决方案:Month name in genitive (Polish locale) with Joda-Time DateTimeFormatter

PS:我无法重现错误,代码如下:

DateTime datetime = new DateTime();
System.out.println(datetime.monthOfYear().getAsText(new Locale("es")));
System.out.println(datetime.monthOfYear().getAsShortText(new Locale("es")));

给我“febrero”和“feb”

于 2018-02-26T12:28:51.307 回答