2016-07-19 13 views
0

joda時間が夏時間後に時間とオフセット時間を更新する理由を理解できないようですが、Java時間はありません。joda時間がJava時間がないと時間とオフセットを更新するのはなぜですか?

DateTime dateTime = new DateTime("2016-04-05T10:06:21.636-05:00").withDayOfWeek(5); 

    TemporalField dayOfWeek = WeekFields.ISO.dayOfWeek(); 
    OffsetDateTime offsetDateTime = OffsetDateTime.parse("2016-04-05T10:06:21.636-05:00").with(dayOfWeek, 5); 
    ZonedDateTime zonedDateTime = ZonedDateTime.parse("2016-04-05T10:06:21.636-05:00").with(dayOfWeek, 5); 

    System.out.println("dateTime:   " + dateTime); // 2016-04-08T11:06:21.636-04:00 
    System.out.println("offsetDateTime: " + offsetDateTime); // 2016-04-08T10:06:21.636-05:00 
    System.out.println("zonedDateTime: " + zonedDateTime); // 2016-04-08T10:06:21.636-05:00 
+0

おそらく、java8 jsr310の実装がyoda時間に近いですが、まったく同じではないためですか? 2人の間には微妙な違いがあります...おそらくそれがその一つでしょう。 – GhostCat

+2

私は次のように推測します:あなたはタイムゾーンを提供しておらず、両方にオフセットしています。オフセット日時とゾーン化された日時インスタンス。どちらの場合も、夏時間に関する手掛かりはありません。おそらく、ゾーニングされた日付時刻オブジェクトを作成するときにタイムゾーンを指定する必要があります。期待どおりに動作する可能性があります。 – Seelenvirtuose

+0

@Seelenvirtuoseありがとう。それが問題でした。 – Jon

答えて

1

タイムゾーン、オフセット日時、ゾーン化された日付時刻の両方のオフセットのみを指定しました。どちらの場合でも、タイムゾーンの情報であるため、夏時間に関するヒントはありません。

ゾーニングされた日時オブジェクトを作成するときにタイムゾーンを指定する必要があります。それで、それは期待通りに機能します。

関連する問題