以下は、タイム ゾーン情報を含む ISO8601 日付文字列の逆シリアル化です。タイム ゾーン情報が失われていることに注意してください。
scala> val date1 = new DateTime().withZone(DateTimeZone.forID("Europe/Berlin"))
date1: org.joda.time.DateTime = 2013-09-22T18:42:15.348+02:00
scala> date1.getZone()
res45: org.joda.time.DateTimeZone = Europe/Berlin
scala> val date2 = new DateTime(date1.toString())
date2: org.joda.time.DateTime = 2013-09-22T19:42:15.348+03:00
scala> date2.getZone()
res46: org.joda.time.DateTimeZone = Europe/Vilnius
scala> date1.getZone() == date2.getZone()
res47: Boolean = false
タイム ゾーン情報 (UTC オフセット) は、ISO8601 文字列の末尾と+03:00
同様にシリアル化されますが、逆シリアル化後に失われます。+02:00
ご覧のとおり、date2
DateTime オブジェクトのコピーであると予想していましたdate1
が、システムの UTC オフセットが ではなくあり+02:00
ますdate1
。
UTC オフセットを維持するために ISO8601 文字列をデシリアライズするにはどうすればよいですか?