次の形式を取得するにはどうすればよいですか。
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 は、toString
のDateTime
がISO8601で日付を出力することを示します。すべての時間フィールドをゼロにする必要がある場合は、次のようにします。
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);