前端時間:Tue Nov 26 2019 23:59:00 GMT+0800 (中國標准時間),后台接收到的時間為:2019-11-26T15:59:00.000Z;兩個時間相差8小時,也就是說這兩個時間是不同時區的,2019-11-26T15:59:00.000Z是(UTC)
在網上找到很多解決方案,如下所示:(但是都沒能解決我的問題)
1、在啟動類加上 @PostConstruct void setDefaultTimezone() { TimeZone.setDefault(TimeZone.getTimeZone("Asia/Shanghai")); } 2、在application.properties加上 ## json setting spring.jackson.date-format=yyyy-MM-dd HH:mm:ss spring.jackson.time-zone=Asia/Shanghai 3、在啟動類 啟動run方法里加上 public static void main(String[] args) { TimeZone.setDefault(TimeZone.getTimeZone("Asia/Shanghai")); SpringApplication.run(BaseMicroServiceApplication.class, args); }
我的解決方案是,在前端js把時間戳(Tue Nov 26 2019 23:59:00 GMT+0800)轉為日期格式(2019-11-26 23:59:00)。(怪我前端沒學好,搗鼓了挺久才把問題解決)
var begin = $scope.beginQuery; var end = $scope.endQuery; function formatDate(date) { return moment(date).format('YYYY-MM-DD HH:mm:ss'); } console.log(formatDate(begin)); console.log(end);
輸出日期為:
注:第一個是轉換后的日期,第二是沒轉換的時間戳
問題解決了,就是后台接收時間戳的時間把時區轉為了UTC。
但是至於我為什么用前3種方式,沒能解決問題,可能是我后台接收參數的方式不是json;
在這里做一下總結,下次再遇到可以都試一下