😉

日付は正しく扱いましょう

2021/05/08に公開

他の人の書いたテストコードの日付に関する扱いでちょいちょいハメられるのでメモ。

DateTime

A DateTime calculates its fields with respect to a time zone.
https://github.com/JodaOrg/joda-time/blob/27edfffa58e7070b865efc56435263bba527eabd/src/main/java/org/joda/time/DateTime.java#L37-L38

タイムゾーンを指定しない場合にはSystemのデフォルトを取得するようになるため実行環境によって結果が異なるようになってしまう。

val dateTime = new DateTime(2021, 5, 8, 16, 30)
// dateTime: 2021-05-08T16:30:00.000+09:00

LocalDateTime

datetime without a time zone.
https://github.com/JodaOrg/joda-time/blob/27edfffa58e7070b865efc56435263bba527eabd/src/main/java/org/joda/time/LocalDateTime.java#L40-L41

val localDateTime = new LocalDateTime(2021, 5, 8, 16, 30)
// localDateTime: 2021-05-08T16:30:00.000

Discussion