内容简介:Date字段在不同机器上序列化、反序列化,时间值出现半个小时的偏差。然而使用而且
Date字段在不同机器上序列化、反序列化,时间值出现半个小时的偏差。
然而使用 date
命令查看系统时间,两台机器上的时间是一致的,时区都是CST(中间标准时间)。
>> date Sat Jun 9 13:49:21 CST 2018
而且 /etc/sysconfig/clock
文件内容也是一样的。
>> cat /etc/sysconfig/clock ZONE="Asia/Shanghai"
解决方案
方法一
通过 TimeZone.setDefault
方法在 Java 代码中强制设置时区为东8区。
TimeZone.setDefault(TimeZone.getTimeZone("Asia/Shanghai"));
// or
TimeZone.setDefault(TimeZone.getTimeZone("GMT+8"));
方法二
在JVM启动参数中增加 -Duser.timezone=Asia/Shanghai
,或者为 GMT+8
。
方法三
后来发现,是因为服务器上的 /etc/localtime
文件指向的是 /usr/share/zoneinfo/Asia/Harbin
,从而导致序列化Date时出现时区偏差。
Java通过 /usr/share/zoneinfo/Asia/Harbin
的文件名来确定时区,而系统命令 date
是通过文件内容来确定的,因此结果不同。
解决方法是
ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
此方法在CentOS 6.5系统上验证,这里不能使用 cp
命令将文件复制过来,否则Java程序可能会出问题。
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:- springboot~DTO字符字段与日期字段的转换问题
- Protocol Buffers 学习(2):字段类型和其他语言字段类型之间的映射
- Protocol Buffers 学习(2):字段类型和其他语言字段类型之间的映射
- PHPRAP 2.0.2 发布,接口和字段数据分离,字段使用单独数据表
- Java 序列化反序列化对比
- python 序列化和反序列化
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
大学程序设计课程与竞赛训练教材
吴永辉、王建德 / 机械工业出版社 / 2013-6 / 69.00
本书每章为一个主题,实验内容安排紧扣大学算法和数学的教学,用程序设计竞赛中的算法和数学试题作为实验试题,将算法和数学的教学与程序设计竞赛的解题训练结合在一起;在思维方式和解题策略的训练方面,以问题驱动和启发式引导为主要方式,培养读者通过编程解决问题的能力。 本书特点: 书中给出的234道试题全部精选自ACM国际大学生程序设计竞赛的世界总决赛以及各大洲赛区现场赛和网络预赛、大学程序设计竞......一起来看看 《大学程序设计课程与竞赛训练教材》 这本书的介绍吧!