1 在k8s环境中,在代码中比较时间。new Date() 发下相差8小时

  • 检查宿主机 时区是 cst时区
  • 用java代码写出controller时区发现是GMT
    代码如下:
Calendar calendar = Calendar.getInstance();      
        System.out.println("目前时间:" + calendar.getTime());
        System.out.println("Calendar时区::" + calendar.getTimeZone().getID());
        System.out.println("user.timezone:" + System.getProperty("user.timezone"));
        System.out.println("user.country:" + System.getProperty("user.country"));
        System.out.println("默认时区:" + TimeZone.getDefault().getID());

输出时区是 GMT 跟宿主机还不一样,搞不定运维,自己搞把

看来还是时区搞的鬼-
1、数据库链接db添加参数 serverTimezone=Asia/Shanghai
2、springboot启动脚本添加 -Duser.timezone=GMT+08
3、jackson 全局配置
spring.jackson.date-format: yyyy-MM-dd HH:mm:ss
spring.jackson.time-zone: GMT+8
4、jackson 注解
@JsonFormat(timezone = “GMT+8”, pattern = “yyyy-MM-dd HH:mm:ss”)

Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐