前后端交互,日期类型小结
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,非标准格式,系统会报错。