次の形式を取得するにはどうすればよいですか。
2015-01-31T00:00:00Z
(ISO8601 GMT 日付形式)
Joda 時間 (Java) で DateTime オブジェクトが不足していますか? 例えば。
DateTime time = DateTime.now();
String str = // Get something like 2012-02-07T00:00:00Z
ありがとう!:)
JODA Javadocは、ISO8601 の日付toString
を出力することを示しています。DateTime
すべての時間フィールドをゼロにする必要がある場合は、次のようにします。
final DateTime today = new DateTime().withTime(0, 0, 0, 0);
System.out.println(today);
これにより、出力文字列にミリ秒が含まれます。それらを取り除くには、@jgm がここで提案するフォーマッタを使用する必要があります。
Z
この投稿で求めている形式 (リテラル文字を使用) に一致させたい場合は、次のようにします。
System.out.println(today.toString(DateTimeFormat.forPattern("yyyy-MM-dd'T'HH:mm:ss'Z'")));
値を UTC にする必要がある場合は、次のように初期化します。
final DateTime today = new DateTime().withZone(DateTimeZone.UTC).withTime(0, 0, 0, 0);
@jgm ドキュメントでISODateTimeFormat.dateTime()
は、
「T」で区切られた完全な日付と時刻を組み合わせたフォーマッターを返します (yyyy-MM-dd'T'HH:mm:ss.SSSZZ)。
ただし、タイムゾーンを設定すると、たとえば、
DateTimeFormatter fmt = ISODateTimeFormat.dateTime();
System.out.println(fmt.print(new DateTime().toDateTime(DateTimeZone.UTC)));
Zで終わります。
ISODateTimeFormatを使用する
DateTime dt = new DateTime();
DateTimeFormatter fmt = ISODateTimeFormat.dateTimeNoMillis();
String str = fmt.print(dt);
次を設定しますDateTimeFormatter
。
DateTimeFormatter formatter = DateTimeFormat.forPattern("yyyy-MM-dd'T'HH:mm:ssZ");
formatter.print(time);