Joda-Time:如何打印4位数字年份?

问题描述 投票:0回答:2

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

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

给出“17/06/13”(两位数年份)。样式“M-”给出“17 juin 2013”(语言环境法语),这也不是我想要的。

当然,我可以创建一个具有“dd/MM/yyyy”模式的格式化程序,这会给我一个 4 位数的年份,但它不区分区域设置。

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

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

java jodatime
2个回答
5
投票
只需获取本地化短样式的模式,如果尚不存在,请将“yy”替换为“yyyy”。

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

1
投票
作为替代方案,您可以选择使用 ISO 标准日期格式而不是本地化日期格式。 ISODateTimeFormat.date() 将返回“yyyy-MM-dd”的格式化程序。

© www.soinside.com 2019 - 2024. All rights reserved.