我似乎无法弄清楚为什么 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
最佳答案
时区与偏移量
您没有提供时区,仅提供了偏移日期时间和分区日期时间实例的偏移量。在这两种情况下,他们都没有任何关于夏令时的线索,因为这是时区的信息。
因此,在构造分区日期时间对象时,您必须提供时区,然后它就会按您的预期工作。
关于java - 为什么 joda time 更新时间和偏移量,而 java time 不更新?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38462306/