CentOS7上设置或更改时区

2022-06-02 16:11:48 浏览数 (1)

使用正确的时区对于许多与系统相关的任务和流程很重要。例如cron守护进程使用系统的时区来执行cron作业。

前提条件

为了能够更改系统的时区,你需要以root或具有 sudo权限的用户身份

几个常见的时间参数说明

  • UTC (Universal Time Coordinated) 协调世界时,又称世界标准时间
  • GMT (Greenwich Mean Time) 格林尼治平均时
  • CST 时间有以下几种含义:
    • Central Standard Time (USA) UT-6:00
    • Central Standard Time (Australia) UT 9:30
    • China Standard Time UT 8:00
    • Cuba Standard Time UT-4:00
  • (CET Central European Time,CET)欧洲中部时间是比世界标准时间(UTC)早一个小时的时区名称之一
  • DST (Daylight Saving Time)夏日节约时间

换算关系

  • UTC=GMT
  • CET=UTC/GMT 1小时
  • CST=UTC/GMT 8 小时
  • CST=CET 9

检查当前时区

在 CentOS 和其他现代 Linux 发行版中,你可以使用该timedatectl命令来显示和设置当前系统的时间和时区。

下面的输出显示系统的时区设置为 UTC:

代码语言:javascript复制
> timedatectl
      Local time: Tue 2021-10-26 13:19:30 CST
  Universal time: Tue 2021-10-26 05:19:30 UTC
        RTC time: Tue 2021-10-26 05:19:30
       Time zone: Asia/Shanghai (CST,  0800)
     NTP enabled: no
NTP synchronized: yes
 RTC in local TZ: no
      DST active: n/a

系统时区是通过符号链接/etc/localtime/usr/share/zoneinfo目录中的二进制时区标识符来配置的。因此,检查时区的另一个选项使用ls命令显示符号链接指向的路径 :

代码语言:javascript复制
> ls -l /etc/localtime
lrwxrwxrwx 1 root root 33 Jun 12  2019 /etc/localtime -> /usr/share/zoneinfo/Asia/Shanghai

在 CentOS 中更改时区

在更改时区之前,你需要找出要使用的时区的长名称。时区命名约定通常使用地区/城市格式。

要列出所有可用的时区,你可以列出目录中的文件/usr/share/zoneinfo或使用timedatectl命令。

代码语言:javascript复制
> timedatectl list-timezones
Africa/Abidjan
Africa/Accra
Africa/Addis_Ababa
Africa/Algiers
Africa/Asmara
Africa/Bamako
Africa/Bangui
Africa/Banjul
Africa/Bissau
Africa/Blantyre
Africa/Brazzaville
Africa/Bujumbura
Africa/Cairo
Africa/Casablanca
Africa/Ceuta
Africa/Conakry
Africa/Dakar
Africa/Dar_es_Salaam
Africa/Djibouti
Africa/Douala
Africa/El_Aaiun
Africa/Freetown
Africa/Gaborone
Africa/Harare
Africa/Johannesburg
Africa/Juba
Africa/Kampala
Africa/Khartoum
...

确定时区后运行以下命令:

代码语言:javascript复制
> sudo timedatectl set-timezone your_time_zone

例如,要将系统的时区更改为Asia/Shanghai

代码语言:javascript复制
> sudo timedatectl set-timezone Asia/Shanghai

运行timedatectl命令以验证更改:

代码语言:javascript复制
> timedatectl
      Local time: Tue 2021-10-26 13:21:33 CST
  Universal time: Tue 2021-10-26 05:21:33 UTC
        RTC time: Tue 2021-10-26 05:21:33
       Time zone: Asia/Shanghai (CST,  0800)
     NTP enabled: no
NTP synchronized: yes
 RTC in local TZ: no
      DST active: n/a

通过创建符号链接更改时区

如果你运行的是旧版本的CentOS并且没有timedatectl命令,你可以通过符号链接/etc/localtime/usr/share/zoneinfo目录中的时区文件来更改时区。

删除当前/etc/localtime文件或符号链接:

代码语言:javascript复制
> sudo rm -rf /etc/localtime

确定要配置的时区并创建符号链接 :

代码语言:javascript复制
> sudo ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

你可以通过列出/etc/localtime文件或发出date命令来验证它:

代码语言:javascript复制
> date
Tue Oct 26 13:45:36 CST 2021

设置时间

代码语言:javascript复制
> sudo timedatectl set-time "YYYY-MM-DD HH:MM:SS"
//或
> sudo date -s "YYYY-MM-DD HH:MM:SS"

相关文章

linux中的15个基本ls命令示例

0 人点赞