1

我正在尝试将 withWeekOfWeekyear 转换为 java.time。我似乎无法弄清楚为什么与 weekOfWeekBasedYear 相比,withWeekOfWeekyear 的偏移量不同。

    DateTime dateTimeWeek = new DateTime().withWeekOfWeekyear(1);
    OffsetDateTime offsetDateTimeWeek = OffsetDateTime.now().with(WeekFields.ISO.weekOfWeekBasedYear(), 1);

    DateTime dateTime = new DateTime();
    OffsetDateTime offsetDateTime = OffsetDateTime.now();

    System.out.println(dateTimeWeek); // 2016-01-04T12:20:50.981-05:00
    System.out.println(offsetDateTimeWeek); // 2016-01-04T12:20:51.034-04:00

    System.out.println(dateTime); // 2016-07-18T12:20:51.101-04:00
    System.out.println(offsetDateTime); // 2016-07-18T12:20:51.101-04:00
4

1 回答 1

1

org.joda.time.DateTime时区感知。

ADateTime相对于 a 计算其字段time zone

java.time.OffsetDateTime知道时区,即不针对夏令时进行调整。

OffsetDateTime在瞬间添加与 UTC/格林威治的偏移量,这允许获取本地日期时间。ZonedDateTime添加完整的时区规则。

java.time.ZonedDateTime 时区感知的,所以如果你使用它,你应该得到相同的结果。

ZonedDateTime是具有时区的日期时间的不可变表示。

于 2016-07-18T16:51:33.393 回答