【问题标题】:OffsetDateTime time is changing zone offsetOffsetDateTime 时间正在改变区域偏移
【发布时间】:2017-01-30 17:04:58
【问题描述】:

所以我有一个 sn-p 代码,它基本上应该接受一个日期时间字符串并以完全相同的格式返回它

val dateString = "2016-01-01T01:30:55.000+00:00"
println("before: " + dateString)
val formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss.SSS+hh:mm")
val date = OffsetDateTime.parse(dateString)
println("after: " + date.format(formatter))

但是,当我尝试将其重新转换为字符串时,我得到了不同的偏移量!

before: 2016-01-01T01:30:55.000+00:00
after:  2016-01-01T01:30:55.000+01:30

我在这里做错了吗?

谢谢!

【问题讨论】:

    标签: java scala datetime java-time


    【解决方案1】:

    +hh:mm 不是时区偏移的正确格式。根据documentation,您应该改用XXX

    【讨论】:

      【解决方案2】:

      OffsetDateTime.parse(CharSequence text) 的默认 DateTimeFormatter 是 yyyy-MM-dd'T'HH:mm:ss+hh:mm(不带“.SSS”)。

      所以我认为你的错误在那里。

      formatter 变量作为方法的第二个参数传递,它应该可以工作。

      【讨论】:

      • 所以问题是如果我有 +hh:mm 它不会读取 .SSS,然后我在技术上会丢失数据。有没有办法同时保持这两个价值观?
      猜你喜欢
      • 2018-06-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多