编程语言
首页 > 编程语言> > java-Jodatime:如何打印4位数字的年份?

java-Jodatime:如何打印4位数字的年份?

作者:互联网

我使用Jodatime格式化日期,并使用语言环境格式化特定于区域的日期.我希望将日期格式设置为“ 17/06/2013”​​(分隔符必须取决于语言环境),几乎可以通过以下方式实现

DateTimeFormat.forStyle("S-").withLocale(myLocale)

它给出“ 17/06/13”(2位数字的年份).样式“ M-”表示“ 17 juin 2013”​​(法语区域设置),这也不是我想要的.

当然,我可以使用“ dd / MM / yyyy”之类的格式创建格式化程序,这将为我提供4位数字的年份,但它对语言环境不敏感.

我一直在寻找一种修改用“ S-”样式创建的格式化程序的方法,但似乎不可能.

用这种行为获得格式化程序的最简单方法是什么?

解决方法:

只需获取本地化短样式的模式,然后将“ yy”替换为“ yyyy”(如果尚不存在).

String pattern = DateTimeFormat.patternForStyle("S-", locale);
if (!pattern.contains("yyyy")) {
    pattern = pattern.replace("yy", "yyyy");
}
DateTimeFormatter formatter = DateTimeFormat.forPattern(pattern);

标签:jodatime,java
来源: https://codeday.me/bug/20191030/1970364.html