1

我有 LocalDate,我想以 2 位数字、全年和“-”作为分隔符打印日期。

当然我可以这样使用:

DateTimeFormatter dtf = DateTimeFormat.forPattern("dd-MM-yyyy");
dtf.print(localDate);

它显示:

17-09-2012
18-09-2012
19-09-2012

但这仅适用于我的语言环境,其他人呢?例如美国应该是:

09-17-2012
09-18-2012
09-19-2012

这个怎么做?

DateTimeFormatter dtf = DateTimeFormat.shortDate();

它会自行切换日期和月份的位置。但它只打印:

(my locale):
17/9/12
18/9/12
19/9/12
(USA locale):
9/17/12
9/18/12
9/19/12
4

1 回答 1

4

DateTimeFormatter API

// 使用默认值打印(默认区域设置、日期时间的年表/区域)
String dateStr = formatter.print(dt);
// 使用法语语言环境进行打印
String dateStr = formatter.withLocale(Locale.FRENCH).print(dt);
// 使用 UTC 区域进行打印
String dateStr = formatter.withZone(DateTimeZone.UTC).print(dt);

因此,您可以将 Locale 或 DateTimeZone 与 DateTimeFormatter 一起使用。

但是,由于设置了模式,输出仍然是相同的。

您可以DateTimeFormatter改为使用样式定义您的:

DateTimeFormatter dtf = DateTimeFormat.forStyle("M-");

并使用语言环境打印。

于 2013-01-03T20:53:55.733 回答