Struts2 生成 JSON的日期转化成JS Date对象时间不一致的问题

我们前端用到Ext JS,在用Ext.Date.format(date, fomat)格式化日期的时候时间出现了不一致的问题,一开始以为是JS出现的问题。后来看了一下后端生成的JSON日期,格式类似:2014-10-11T17:02:45,日期和时间之前有个T,这是UTC时间,为世界标准时间,与GMT时间一样。

这个时间转成JS的Date对象时,如new Date(“2014-10-11T17:02:45″),时间会变成12号 的1点02分45秒,可见,相差了8个小时,而中国的时间是+0800,刚好就差这8个小时。

不知道为什么Strut2转成JSON会这样,丢失了时区,如果时间格式为:2014-10-11T17:02:45+0800是没问题的,包含了时区信息。

为了让JS正常工作,我们在Java的PO的Date类型的get方法中用注解 @JSON(format=”yyyy-MM-dd HH:mm:ss”) 格式化一下时间格式即可。我们在前端获取的时间格式变成了:2015-01-02 13:26:53,转成Date对象时间正确。

发表评论