为什么WeekOfWeekyear给我一个不同的偏移?

时间:2016-07-18 16:31:58

标签: java jodatime jsr310

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

    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

1 个答案:

答案 0 :(得分:1)

org.joda.time.DateTime可识别时区。

  

DateTime根据time zone计算其字段。

java.time.OffsetDateTime 时区可识别,即不会针对夏令时进行调整。

  

OffsetDateTime添加到UTC / Greenwich的偏移瞬间,这允许获得本地日期时间。 ZonedDateTime添加了完整的时区规则。

java.time.ZonedDateTime 时区可识别,因此如果你使用它,你应该得到相同的结果。

  

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