本文介绍如何在Linux操作系统中设置或更改时区的方法,可以使用timedatectl,包括通过创建符号链接来更改时区。
前言
时区是具有相同标准时间的地理区域,通常,时区是在操作系统的安装过程中设置的,但以后可以轻松更改。
对于许多与系统相关的任务和过程,使用正确的时区至关重要,例如,cron守护程序使用系统的时区执行cron作业,时区也用于日志时间戳。
本文介绍在Linux操作系统中设置或更改时区的必要步骤。
使用timedatectl检查当前时区
timedatectl是一个命令行实用程序,可让你查看和更改系统的时间和日期,它在所有基于systemd的现代Linux系统上都可用。
要查看当前时区,请在不使用任何选项或参数的情况下调用timedatectl命令:
$ timedatectl
返回的信息如下图(根据你的设置及所在时区/时间,返回的信息都有所不同):
上面的输出显示系统的时区设置为UTC。
通过将/etc/localtime文件符号链接到/usr/share/zoneinfo目录中的二进制时区标识符来配置系统时区。
检查时区的另一种方法是使用ls命令查看symlink指向的路径:
$ ls -l /etc/localtime
返回的信息如下图:
使用timedatectl在Linux系统中更改时区
在更改时区之前,你需要找出要使用的时区的长名称,时区命名约定通常使用“地区/城市(Region/City)”格式。
要查看所有可用时区,请使用timedatectl命令或在/usr/share/zoneinfo目录中列出文件:
$ timedatectl list-timezones
返回的信息如下图(会根据你的情况有所不同):
确定哪个时区适合你的位置后,以root或sudo用户身份运行以下命令:
$ sudo timedatectl set-timezone
例如,要将系统的时区更改为America/New_York,请输入:
$ sudo timedatectl set-timezone America/New_York
或者,将系统的时区更改变Asia/Shanghai,请输入:
$ sudo timedatectl set-timezone Asia/Shanghai
要验证更改,请再次调用timedatectl命令:
$ timedatectl
返回的信息如下图:
至此,任务完成,你已经成功更改了系统的时区。
通过创建符号链接来更改时区(不使用timedatectl的方法)
如果你正在运行较旧的Linux发行版,并且系统上没有timedatectl实用程序,则可以通过将/etc/localtime符号链接到/usr/share/zoneinfo目录中的时区来更改时区。
删除当前的符号链接或文件:
$ sudo rm -rf /etc/localtime
确定要配置的时区并创建符号链接:
$ sudo ln -s /usr/share/zoneinfo/America/New_York /etc/localtime
如果是Asia/Shanghai,请改成:
$ sudo ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
通过列出/etc/localtime文件或调用date命令来验证它:
$ date
输出包括时区,在此示例中为“EST”:
结论
要在Linux系统中更改时区,请使用sudo timedatectl set-timezone命令,后跟要设置的时区的长名称。
相关主题