2017-06-17 java.util.TimeZone#getTimeZone(java.lang.String) が存在しない ID に GMT を返す
java.util.TimeZone#getTimeZone(java.lang.String)
は見つからないとき GMT を返す。
2017-06-07 の SimpleDateFormat に続いて、また Java の古い Date まわりで踏んだ話。なぜか TimeZone がおかしくなるなあと思っていろいろ調べたら、存在しない TimeZone を指定していた。存在していないなら例外を投げてほしい。あるいは文字通り null
にしてほしい。 Null Object として使ったときに困る値を使うのはやめようよ……。
回避策は事前に availableIDs
などで調べておくのもありだし、TimeZone
をつくってしまう (SimpleTimeZone
を使うのが楽) のもありだ。
前にも書いたが、そも java.time を使えるなら、そちらを使う方がいい。