【问题标题】:Why is withWeekOfWeekyear giving me a different offset?为什么 withWeekOfWeekyear 给了我不同的偏移量?
【发布时间】:2016-11-21 08:42:11
【问题描述】:

我正在尝试将 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

【问题讨论】:

    标签: java jodatime jsr310


    【解决方案1】:

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

    DateTime 相对于time zone 计算其字段。

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

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-07-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多