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