使用正确的时区对于许多与系统相关的任务和流程很重要。例如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:
> 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命令显示符号链接指向的路径 :
> ls -l /etc/localtime lrwxrwxrwx 1 root root 33 Jun 12 2019 /etc/localtime -> /usr/share/zoneinfo/Asia/Shanghai
在 CentOS 中更改时区
在更改时区之前,你需要找出要使用的时区的长名称。时区命名约定通常使用地区/城市格式。
要列出所有可用的时区,你可以列出目录中的文件/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 ...
确定时区后运行以下命令:
> sudo timedatectl set-timezone your_time_zone
例如,要将系统的时区更改为Asia/Shanghai:
> sudo timedatectl set-timezone Asia/Shanghai
运行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
通过创建符号链接更改时区
如果你运行的是旧版本的CentOS并且没有timedatectl命令,你可以通过符号链接/etc/localtime到/usr/share/zoneinfo目录中的时区文件来更改时区。
删除当前/etc/localtime文件或符号链接:
> sudo rm -rf /etc/localtime
确定要配置的时区并创建符号链接 :
> sudo ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
你可以通过列出/etc/localtime文件或发出date命令来验证它:
> date Tue Oct 26 13:45:36 CST 2021
设置时间
> sudo timedatectl set-time "YYYY-MM-DD HH:MM:SS" //或 > sudo date -s "YYYY-MM-DD HH:MM:SS"
最新评论
Thanks for your blog, nice to read. Do not stop.
1
1
你图片显示不了
你的网站怎么注册啊