[英]Parse serialized date in Grails with proper time zone
我正在尝试在 Grails App 中绑定日期。 在application.yml
我有默认 JavaScript 日期格式的databindings
:
grails:
databinding:
dateFormats:
- "yyyy-MM-dd'T'hh:mm:ss.S'Z'"
- "yyyy-MM-dd'T'HH:mm:ss'Z'"
在 Groovy 中,我从 params def entity = new Entity(params)
创建对象,一切都绑定好,但是...
问题是我的 Grails 应用程序中的时区错误,即:
Thu Oct 22 2015 00:00:00 GMT+0200 (CEST)
(这是Date
对象的字符串表示) 接下来我通过$http
服务发送它,JSON 有效负载如下所示: { date: "2015-10-21T22:00:00.000Z", another: "another:, property: "property" }
. 日期看起来不错现在,末尾的Z
表示现在是 UTC 所以Thu Oct 22 2015 00:00:00 GMT+0200 (CEST)
- 2 小时 => 2015-10-21T22:00:00.000Z
在 Grails 中,我正在执行def entity = new Entity(params)
问题, entity.date
等于Wed Oct 21 22:00:00 CEST 2015
,这意味着 Groovy/Grails 解析了字符串2015-10-21T22:00:00.000Z
作为 CEST 时区而不是 UTC
那么如何强制 Grails 以正确的格式加载日期呢?
PS Web 浏览器和计算机都使用 CEST 时区。
我正在使用 Grails 3.0
正确的日期时间字符串是yyyy-MM-dd'T'HH:mm:ss.SSSX
。
在下一个版本中,这应该是固定的,JavaScript 日期时间字符串将通过默认解析器进行解析。
更多的:
https://github.com/grails/grails-core/issues/9367 https://github.com/grails/grails-core/issues/9368
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.