spring boot項目前端和后台日期參數時區不一致問題


前端時間: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;

在這里做一下總結,下次再遇到可以都試一下


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM