Centos7 修改硬件时间和系统时间

时间:2021-06-19 06:54:04

一、废哔哔

声明下,我是个java程序员。昨天找运维要来台服务器部署服务,然后在这台服务器上使用 date 命令,可以确定是东八区,然后查看时区,也确定是东八区上海时间。但是log4f的时间是和系统的时间不对应。然后在程序里输出了new Date(),显示的时间和log4j一致,但是和系统时间不一致,这就导致订单时间不对应,对比时间的时会出现误差,许多订单显示超时,实际没有超时。

当时排查过问题,可以很明确的排除时区,jvm,tomcat的问题,当时一位老同志就让我看看是否是系统时间和硬件时间不一致,一查看还真是,log4j和new Date()取得是硬件时间

二、解决过程

要是用root哦

  • 查看系统时间
[root@localhost ~]# date
Tue Jun 13 10:20:13 CST 2017

  • 查看硬件时间
[root@localhost ~]# hwclock --show
Tue 13 Jun 2017 02:11:12 AM CST -0.848845 seconds

可以看出系统时间比硬件时间快,系统时间是准确的


假如系统时间和硬件时间都不准确

  • 更新系统年月日
[root@localhost ~]# timedatectl set-time 2017-06-13

  • 更新系统时分秒
[root@localhost ~]# timedatectl set-time 10:25:17

  • 更新时区(亚洲-中国-上海)
[root@localhost ~]# timedatectl set-timezone Asia/Shanghai

  • 将硬件时钟调整为与系统时钟一致
[root@localhost ~]# timedatectl set-local-rtc 1
或者
[root@localhost ~]# hwclock --systohc --localtime

  • 将日期写入CMOS
[root@localhost ~]# clock –w

再次查看系统时间和硬件时间,他们就一致了