使用正确的时区对于许多与系统相关的任务和流程很重要。例如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
检查当前时区
代码语言:javascript复制在 CentOS 和其他现代 Linux 发行版中,你可以使用该
timedatectl
命令来显示和设置当前系统的时间和时区。下面的输出显示系统的时区设置为 UTC:
> 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
代码语言:javascript复制系统时区是通过符号链接
/etc/localtime
到/usr/share/zoneinfo
目录中的二进制时区标识符来配置的。因此,检查时区的另一个选项使用ls命令显示符号链接指向的路径 :
> ls -l /etc/localtime
lrwxrwxrwx 1 root root 33 Jun 12 2019 /etc/localtime -> /usr/share/zoneinfo/Asia/Shanghai
在 CentOS 中更改时区
代码语言:javascript复制在更改时区之前,你需要找出要使用的时区的长名称。时区命名约定通常使用地区/城市格式。
要列出所有可用的时区,你可以列出目录中的文件
/usr/share/zoneinfo
或使用timedatectl
命令。
> 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
代码语言:javascript复制例如,要将系统的时区更改为
Asia/Shanghai
:
> sudo timedatectl set-timezone Asia/Shanghai
代码语言:javascript复制运行
timedatectl
命令以验证更改:
> 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
通过创建符号链接更改时区
代码语言:javascript复制如果你运行的是旧版本的CentOS并且没有
timedatectl
命令,你可以通过符号链接/etc/localtime
到/usr/share/zoneinfo
目录中的时区文件来更改时区。删除当前
/etc/localtime
文件或符号链接:
> sudo rm -rf /etc/localtime
代码语言:javascript复制确定要配置的时区并创建符号链接 :
> sudo ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
代码语言:javascript复制你可以通过列出
/etc/localtime
文件或发出date
命令来验证它:
> 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命令示例