5

以下は、タイム ゾーン情報を含む 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ご覧のとおり、date2DateTime オブジェクトのコピーであると予想していましたdate1が、システムの UTC オフセットが ではなくあり+02:00ますdate1

UTC オフセットを維持するために ISO8601 文字列をデシリアライズするにはどうすればよいですか?

4

1 に答える 1