背景
今天公司一个模块从服务器迁移到k8s,出现时间toString()以后输出结果和以前不一致的情况,原因是以前是CST时间,k8s上统一设置环境时区为GMT-8了。
CST:China Standard Time(老外认为有其他含义,中国就这个缩写),中国标准时。
GMT:Greenwich Mean Time,格林威治标准时,地球每15°经度 被分为一个时区,共分为24个时区,相邻时区相差一小时;例: 中国北京位于东八区。
如何设置
-Duser.timezone=GMT+08 启动命令设置jvm参数,修改时区。默认会读取服务器时区,中国企业服务器时区一般为:Asia/Shanghai,Asia/Shanghai是CST时间。
有何变化
不设置-Duser.timezone时,代码输出结果如下:
System.out.println(new Date());
Thu Jul

本文讨论了在Java应用从服务器迁移至K8s后,由于时区设置变化(GMT-8)导致时间输出从CST变为GMT+08:00的问题。解决方案包括通过-Duser.timezone=GMT+08设置JVM时区,以及在代码层面编写工具类以兼容CST显示。
最低0.47元/天 解锁文章
1万+

被折叠的 条评论
为什么被折叠?



