- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个 angular/spring 启动应用程序,在客户端我使用了一个 primeng 日历输入组件,它获取本地日期并将其转换为 UTC 分区日期时间。然后,我将此日期发送到 REST Controller ,并使用 LocalDateTimeDeserializer
对其进行反序列化。问题是,它只是按原样获取日期,而不真正关心服务器时区(因此 UTC 日期时间成为本地日期时间)。
我查看了源代码,这里是负责的片段:
if (string.endsWith("Z")) {
return LocalDateTime.ofInstant(Instant.parse(string), ZoneOffset.UTC);
}
不应该是:
if (string.endsWith("Z")) {
return LocalDateTime.ofInstant(Instant.parse(string), ZoneOffset.of(ZoneId.systemDefault().getId()));
}
或者类似的东西?
或者关于 LocalDateTime/Timezones 的整个概念,我有什么不明白的地方吗?
最佳答案
不,它在做正确的事情 IMO。
LocalDateTime
不是“服务器本地”,而是“不在任何特定时区”。如果您有一个指示日期/时间的文本值和任何类型的时区指示符(例如,与 UTC 的偏移量或时区 ID),那么最合适的转换为 LocalDateTime
将只是忽略偏移量/ID。例如,采取:
2017-07-18T12:04:00+01:00
这是 2017-07-18T12:04:00 的 LocalDateTime
,UTC 偏移量为 +1。所以我希望将它解析为 LocalDateTime
,会得到 2017-07-18T12:04:00 的结果。
不过,我个人会尝试不这样做:将文本数据解析为最合适的值类型,然后以您想要的任何方式更改为不同类型的值。因此,如果您的输入文本始终确实具有 UTC 偏移量(可能使用 Z
表示 0),则将其解析为 OffsetDateTime
,然后 您决定如何将其转换为 LocalDateTime
,您的代码将更加清晰。
基本上,将“将表示从文本更改为内存”和“更改所表示的内容”分成不同的操作。
关于java - 来自 jsr310 的 LocalDateTimeDeserializer 是否正确反序列化祖鲁日期?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45164739/
我有一个 angular/spring 启动应用程序,在客户端我使用了一个 primeng 日历输入组件,它获取本地日期并将其转换为 UTC 分区日期时间。然后,我将此日期发送到 REST Contr
场景是: Gradle 项目 @JsonProperty,无法将 String 反序列化为 LocalDateTime 找到这个:http://andreitsibets.blogspot.com.b
我是一名优秀的程序员,十分优秀!