如何在 Linux 上更改时区如何在 Linux 上更改时区如何在 Linux 上更改时区如何在 Linux 上更改时区
  • 文章
  • 正则表达式
    • 工具
  • 登录
找到的结果: {phrase} (显示: {results_count} 共: {results_count_total})
显示: {results_count} 共: {results_count_total}

加载更多搜索结果...

搜索范围
模糊匹配
搜索标题
搜索内容
发表 admin at 2025年2月28日
类别
  • 未分类
标签

如何在 Linux 上更改时区

问题:我的Linux机器的当前时区不准确,我想更改系统的时区。如何更改 Linux 上的时区?

如果您的Linux系统的默认时区不正确,您需要更正它以获得准确的本地时间。请注意,配置 NTP 并不能解决时区错误的问题,因为 NTP 本身不处理时区。 NTP 以 UTC 格式处理时间数据,实际本地时间是通过添加本地时区偏移量来计算的。因此您需要自己单独更改时区。

检查当前时区

您可以通过以下方式轻松找到 Linux 系统的当前时区:


$ date

$ ls -l /etc/localtime

获取您所在时区的 TZ 值

更改 Linux 系统时区的第一步是获取您所在地区的时区值(TZ 值)。

为此,您可以使用 tzselect 命令,它允许您查看和选择已安装的时区文件。


$ tzselect

通过时区选择菜单来确定您所在的区域。

tzselect 将以 Posix TZ 格式显示您的时区(例如,America/New_York)。这是您所在地区的 TZ 值。记下该值,然后继续下一步。

根据每个用户更改时区

如果您只想更改特定用户的时区,可以使用之前获得的 TZ 值定义 TZ 环境变量。在~/.bashrc中添加如下内容。


export TZ='America/New_York'

然后重新登录或执行~/.bashrc来激活更改。


$ source ~/.bashrc

更改系统范围内的时区

要更改 Linux 系统范围内所有用户的时区,请使用以下命令。


$ sudo rm -f /etc/localtime
$ sudo ln -s /usr/share/zoneinfo/America/New_York /etc/localtime

请注意,时区文件的路径 (/usr/share/zoneinfo/America/New_York) 是根据您之前获得的 TZ 值构建的。

当像这样设置系统范围的时区时,您仍然可以通过在其主目录中的 ~/.bashrc 中定义 TZ 环境变量来为特定用户覆盖它。

在 systemd 下更改系统范围内的时区

如果您的 Linux 系统使用 systemd(例如 Ubuntu 15.04+、Debian 8+、Fedora 15+、CentOS/RHEL 7+),还有另一种方法可以更改系统范围内的时区,即使用 timedatectl 命令。

在systemd下,有一个名为systemd-timedated的系统服务,其职责是调整系统时钟和时区。 timedatectl 命令配置此系统服务。

要使用 timedatectl 更改系统范围内的当前时区:


$ sudo timedatectl set-timezone 'America/New_York'

使用您在上面获得的 TZ 值。

如果您想在 PHP 中设置默认时区,请参阅本教程。

©2015-2025 艾丽卡 support@alaica.com