【Linux】【修改时间】服务器时间和时区的修改

测试环境在linux CentOS-7.4系统上搭建,工作中需要改变服务器的时区和时间,最近关于时间修改问题上遇到一些问题,总结记录一下

# 基 本 操 作

1.查看系统当前时间
linux服务器有系统时间和硬件时间,可使用以下两个命令查看系统时间

date -R #命令1,-R以RFC-2822兼容日期格式显示时间
timedatectl status #命令2,status 可省略

以下是使用timedatectl命令查询的结果

Local time: Tue 2019-09-17 06:25:35 EEST      #服务器时间
  Universal time: Tue 2019-09-17 03:25:35 UTC   #标准时间
        RTC time: Tue 2019-09-17 03:25:48       #硬件时间
       Time zone: Asia/Shanghai (EEST, +0300)   #时区
     NTP enabled: no							#ntp校时状态
NTP synchronized: no
 RTC in local TZ: yes
      DST active: yes
 Last DST change: DST began at                  #以下内容为夏令时开始和结束时间
                  Sun 2019-03-31 02:59:59 EET
                  Sun 2019-03-31 04:00:00 EEST
 Next DST change: DST ends (the clock jumps one hour backwards) at
                  Sun 2019-10-27 03:59:59 EEST
                  Sun 2019-10-27 03:00:00 EET

2.查看硬件时间

hwclock

3.修改时区

timedatectl set-timezone Europe/Kiev  #timedatectl set-timezone  主时区/次时区

注:查看时区可进入到/usr/share/zoneinfo 文件中找到时区

4.修改时间

#修改时间前需要保证ntp校时关闭,否则无法修改时间
timedatectl set-ntp false#关闭ntp校时,可使用timedatectl命令查看ntp校时的状态
timedatectl set-ntp true #打开ntp校时
timedatectl set-time 15:00:00  #修改时间
timedatectl set-time 2019-09-12  #修改日期

#遇到的问题及解决方法

1.系统时钟和硬件时钟不一致

在修改完时间和日期后,务必执行以下命令,使系统时钟同步到硬件时钟

hwclock -w

2.使用date命令和timedatectl命令查看的时间不一致

观察发现使用date命令显示的是AST格式,使用timedatectl显示的是EDT格式,服务器时区正确显示应该是EDT
两者显示格式不一样,,一般是时间配置文件中不正确
执行以下命令查看设置的时区是否正确

cat /etc/profile

centios修改服务器时间 改服务器的时间_系统时间


以上是我的查询结果,可以看出和我所要设置的时区不一致

编辑文档,将TZ的值改为需要的时区,保存后退出重新登录系统

再次查看可以看到date和timedatetcl命令显示的格式一致了

罗列一下目前常见时区:

缩写

地区

EDT

美国东部时间

EST

英国时间

CST

北京时间

EET

东欧标准时间(UTC+2)

EEST

东欧夏令时间(UTC+3)