ISO 8601
ISO8601形式を使用します。
- 柔軟性があり、秒と秒の端数が含まれていますが、0の場合は省略してもかまいません。
- これは標準であるため、ますます多くのツールがフォーマットして解析します。ストレージまたはデータ交換のシリアル化に最適です。
- のようになりますが
2009-10-22T21:13:14
、かなり人間が読める形式であると言えます(ただし、T
時間部分の開始を示す中央は、最初は異常に感じるかもしれません)。
- mikeraが別の回答で要求したように、年が1000から9999までの4桁の範囲にある限り、文字列は適切にソートされます。
- のクラス
java.time
、最新のJava日付および時刻API、およびJoda Timeのクラスは、デフォルトとしてISO 8601を解析します。つまり、明示的なフォーマッターを使用せず、toString
メソッドから同じ形式を生成します。
使用のささやかなデモンストレーションjava.time
:
LocalDateTime dateTime = LocalDateTime.of(2009, 10, 22, 21, 13, 14);
String readableString = dateTime.toString();
System.out.println(readableString);
LocalDateTime parsedBack = LocalDateTime.parse(readableString);
System.out.println(parsedBack);
これにより、2つの同じ行が出力されます。
2009-10-22T21:13:14
2009-10-22T21:13:14
後者のSystem.out.println()
呼び出しは暗黙的toString()
にもう一度呼び出すので、これは驚くべきことではありません。