Linux与Java程序使用的时间不一致
Linux 与 Java 程序使用的时间不一致的处理方法

今天在公司部署系统时遇到了一个关于时区的问题,记录一下

问题描述

使用Java程序调用系统时间如图:

可以看到时间23:00,当时的时间是下午的15:00

然后我用ssh工具连接到服务器查看时间,发现时间又是正确的。

大致推断可能是时区设置没有同步好。

解决办法

  1. 使用timedatectl status查看时区设置

    可以看到RTC in local TZ:no,说明硬件时钟未设置为本地时区。

  2. 修改设置,使用命令

    1
    timedatectl set-local-rtc 1
  3. 再次查看时区设置

  4. 修改完毕,我再去系统进行测试

  5. 问题解决。

扩展

timedatectl概述

timedatectl命令可以查询和更改系统时钟和设置,你可以使用此命令来设置或更改当前的日期,时间和时区,
或实现与远程NTP服务器的自动系统时钟同步。

注意:datetimectl命令自CentOS7 版本被引入。

常用命令

查看当前时间/日期/时区

1
2
timedatectl status
# timedatectl也可以

查看所有可用时区

1
timedatectl list-timezones

设置时区

1
timedatectl set-timezone “时区信息”

设置UTC

1
timedatectl set-timezone UTC

设置时间

1
timedatectl set-time HH:MM:SS

设置日期

1
timedatectl set-time YYYY-MM-DD

设置日期时间

1
timedatectl set-time “YYYY-MM-DD HH:MM:SS”

设置硬件时钟为本地时间

1
timedatectl set-local-rtc 1

设置硬件时钟为UTC时间

1
timedatectl set-local-rtc 0

启动NTP时间同步

1
timedatectl set-ntp true

禁用NTP时间同步

1
timedatectl set-ntp false

更新系统时间

1
2
# 格式:ntpdate [-nv] [ IP/hostname]
ntpdate -u ntp.api.bz

提示:command not found,用yum安装一下

1
yum install -y ntpdate
文章作者: imxushuai
文章链接: https://www.imxushuai.com/2020/06/16/30.Linux与Java程序使用的时间不一致/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 imxushuai
支付宝打赏
微信打赏