这家伙把我坑坏了 , 本来吧数据准备好了 , 一掉接口居然不好使 ,日期总是有偏差 , 结果一看是提交的数据有问题 , 后台直接接受的字符串 new 的Date ,
2017-12-24T16:00:00.000Z
这个不是中国时间 , 我具体也没查是哪里的时间 , 结局方法两个
1 , 修改后台接口
String date = "2016-08-15T16:00:00.000Z"; date = date.replace("Z", " UTC"); SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd‘T‘HH:mm:ss.SSS Z"); SimpleDateFormat format1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss "); try{ Date d = format.parse(date); String sDate=format1.format(date); System.out.println(sDate); }catch(Exception ex){ ex.printStackTrace(); } }
记得捕获异常 , 反正我这里报错
2 前台修改 , 其实这也就是个日期格式 , 不要被吓到 , 用date 直接new 就能new成中国的时间了 , 不过是个时间对象 , 需要自己转换一下 , 网上很多转换时间的方法 ,
export function formatDateTime (date) { var y = date.getFullYear(); var m = date.getMonth() + 1; m = m < 10 ? (‘0‘ + m) : m; var d = date.getDate(); d = d < 10 ? (‘0‘ + d) : d; var h = date.getHours(); h=h < 10 ? (‘0‘ + h) : h; var minute = date.getMinutes(); minute = minute < 10 ? (‘0‘ + minute) : minute; var second=date.getSeconds(); second=second < 10 ? (‘0‘ + second) : second; return y + ‘-‘ + m + ‘-‘ + d+‘ ‘+h+‘:‘+minute+‘:‘+second; };