zoukankan      html  css  js  c++  java
  • 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;

    在这里做一下总结,下次再遇到可以都试一下

  • 相关阅读:
    414. Third Maximum Number 第三大的数字
    java 正则表达式
    将含有逻辑运算符的字符串解析为逻辑符号
    ora-01830:日期格式图片在转换整个输入字符串之前结束
    mysql的字符拼接
    oracle执行计划详解
    oracle获取执行计划及优缺点 详解
    kmp算法中的nextval实例解释
    kmp算法中的next数组实例解释
    哈夫曼实例解释(哈夫曼编码)
  • 原文地址:https://www.cnblogs.com/ouyanxia/p/11958075.html
Copyright © 2011-2022 走看看