前后端交互,日期类型小结

前后端交互,日期类型总结

1. 使用jackson进行反序列化,注意几点

1.1 格式:2014-05-17T04:23:45.254Z

这种格式是UTC标准格式,Z表示标准时区

如果使用jackson转为Date对象,根据中国的时区(GMT+8),时间会新增8个小时。

最终时间为:2014-05-17T12:23:45.254

 

1.2 格式:2014-05-17T04:23:45.254+0800

这种格式是UTC标准格式,+0800表示东八区

如果使用jackson转为Date对象,由于都处于东八区,时间不变

最终时间为:2014-05-17T04:23:45.254

 

1.3 格式:2014-05-17T04:23:45.254

不指定时区,系统默认使用Z(标准时区配置)

如果使用jackson转为Date对象,根据中国的时区(GMT+8),时间会新增8个小时。

最终时间为:2014-05-17T12:23:45.254

 

1.4 格式:1400315611376(类型string,long均可)

 

1.5 格式: 2014-05-17

 

1.6 格式:20121212(这种格式时间按照long型解析)

 

2. 使用jackson进行序列化,注意几点

2.1 默认序列化为long型

 

2.2 配置参数:configure(SerializationConfig.Feature.WRITE_DATES_AS_TIMESTAMPS, false);

输出为1970-01-01T00:00:00.000+0000这种格式,注意:最后时区为+000,我们一般不使用这种格式

 

2.3 定制输出格式:

DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.000Z");

super.getSerializationConfig().setDateFormat(dateFormat);

输出为1970-01-01T00:00:00.000+0800

 

3. 使用Javascript标准函数JSON.stringify对象转字符串

默认Date转为2014-05-17T04:23:45.254Z这种格式

 

结论:

使用jackson,SpringMVC(后端使用jackson实现JSON解析)反序列化对象

1. 注意前端传入的日期时间格式为:2014-05-17T04:23:45.254Z,框架会自动帮你转为东八区的时间。

 

2. 如果使用2014-05-17T04:23:45格式,由于未指定时区,默认使用标准时区,框架会自动帮你退后8小时。

 

3. 如果使用2014-05-17 04:23:45,非标准格式,系统会报错。