无论地区如何,我如何强制使用4位数的年份?

时间:2015-08-12 12:57:11

标签: java jodatime

对于我的Android应用,我使用Joda Time打印本地化日期,如下所示:

String date = DateTimeFormat.shortDate().print(new LocalDate());

但这给了我两位数的年份。

那么,无论当前用户的区域设置如何,我该如何将年份显示为四位数? 并且,如果它们是<日前或月份,我怎么能追加0? 10,再次,无论当前用户Locale

2 个答案:

答案 0 :(得分:0)

您可以使用下面的代码段,它会以您的格式提供日期:

DateTimeFormat.forPattern("MM/dd/yyyy").print(new LocalDate())

答案 1 :(得分:0)

您将创建自己的映射。

这里已经存在的东西:Joda Time有一个方法DateTimeFormat.patternForStyle,它委托java.text.DateFormat中JDK指定的模式。请参阅Using Predefined Formats,其中提供了下表:

Style       U.S. Locale             French Locale
DEFAULT     Jun 30, 2009            30 juin 2009
SHORT       6/30/09                 30/06/09
MEDIUM      Jun 30, 2009            30 juin 2009
LONG        June 30, 2009           30 juin 2009
FULL        Tuesday, June 30, 2009  mardi 30 juin 2009

您可以使用LocalepatternForStyleSM和{{1}来指定您在L中的F特定格式把它留空。因此,在您的情况下,听起来您只想要约会,所以请使用:

-

不幸的是,这个选项将导致两位数的年份。

所以,要么完成所有这些,要么**为此目的创建自己的DateTimeFormatters地图。类似的东西:

DateTimeFormat.patternForStyle("S-", locale);