1

LocalDate があり、日/月を 2 桁、完全な年、区切り記号として「-」で日付を印刷したいと考えています。

もちろん、次のように sth を使用できます。

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

そしてそれは示しています:

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

しかし、これは自分の Locale でのみ問題ありません。他の Locale ではどうでしょうか? たとえば、米国は次のようになります。

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);
//フランス語のロケールを使用して印刷します
StringdateStr= formatter.withLocale(Locale.FRENCH).print(dt);
//UTCゾーンを使用して印刷します
StringdateStr= formatter.withZone(DateTimeZone.UTC).print(dt);

したがって、DateTimeFormatterでロケールまたはDateTimeZoneを使用できます。

ただし、パターンが設定されているため、出力は同じままです。

DateTimeFormatter代わりに、スタイルを使用して定義できます。

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

ロケールで印刷します。

于 2013-01-03T20:53:55.733 に答える