如何从命令行更改时区设置


221

我有一个设置为PST的虚拟机,几个同事在不同的时区中都有。

如果我想将时区更改为ESTGMT,我该怎么办?

Answers:


288

采用 timedatectl

sudo timedatectl set-timezone <timeszone>

例子:

  • 时区为EST

    sudo timedatectl set-timezone EST
    
  • 时区为UTC

    sudo timedatectl set-timezone UTC
    
  • 列出所有有效的时区

    timedatectl list-timezones
    

此命令非常适合自动化脚本,因为与基于的其他给定答案相比,它不需要任何用户交互dpkg-reconfigure tzdata


1
不喜欢+1评论,但我想在这里发表评论,因为这对我来说是最好的方式。我想要一个单一的命令行工具来更改时区,而不是想要启动整个菜单或gui程序(我不知道该怎么tzdata做,它如何工作,但是我不需要这样做一线命令)。谢谢!
Phil Ryan

就像一个魅力;)
user332660 '16

有趣的是,它所做的事情与tzdata有所不同。应用补丁后,我遇到了Java时间与系统时间不同的问题。Tzdata无法解决该问题,但是可以。
Daniel Bower

1
这对我不起作用;但是,dpkg-reconfigure成功的诀窍。
Antti Haapala

14.04.4 ubuntu服务器
Antti Haapala,

40

作为root,您必须执行:

dpkg-reconfigure tzdata

应该启动一个基于菜单的工具,使您可以更改时区。


32

以下工作。对于格林尼治标准时间:

ln -sf /usr/share/zoneinfo/GMT /etc/localtime

森林:

ln -sf /usr/share/zoneinfo/EST /etc/localtime

8
我认为最好链接其中一个城市文件,而不是GMT或EST,因为它们将跟踪夏令时,而链接(例如)GMT不会更改系统时间以反映夏令时的生效时间。在你的城市。例如:ln -sf /usr/share/zoneinfo/Europe/London /etc/localtime
Asfand Qazi

这是最好的
HasanTıngır18-10-17

16

尤其对于服务器而言,最简便的方法是列出时区:

timedatectl list-timezones

并选择您的,例如:

timedatectl set-timezone Europe/Athens

而已!,:-)


6

要以不同的时区设置运行一个程序,请设置TZ环境变量,例如,运行TZ=Pacific/Kiritimati date以查看它在圣诞节岛上的几点钟,或者export TZ=Pacific/Kiritimati使该设置最后一次用于Shell会话。


6

timezone文件/etc夹中的文件编辑为:

Etc/GMT

您可以使用以下格式:

Region "/" City 

范例/etc/timezone

Europe/Athens

要么

Europe/Paris
Europe/London

您可以尝试以下操作:dpkg-reconfigure tzdata 并检查时区文件。

您必须重新引导或重新启动服务(而不是ntp服务)。我不知道是哪一个。如果有人知道,请与我们分享。(在Ubuntu 15.10上进行了测试,该更改会立即考虑在内)


4
cp -p /usr/share/zoneinfo/US/Pacific /etc/localtime

我建议像别人提到的那样反对链接。如果某些脚本意外覆盖了您的/etc/localtime文件,那么它将覆盖您的太平洋时区文件...替换它有点麻烦。

只需使用上面的命令将太平洋文件复制到本地时间文件即可。


这实际上为我工作。我认为Docker有一个错误,ansible(?)。timedatectl和dpkg-reconfigure tzdata对我都失败了。复制后,时区从EST更改为PDT。
太阳

2

我使用以下脚本询问用户要设置的时区,然后确认确实已设置:

#!/bin/sh
sudo timedatectl set-timezone $(tzselect)
echo
echo timedatectl says:
timedatectl

我叫它tz-set



0

这通过SSH在GCP Ubuntu 14上为我工作

  1. sudo su
  2. cp /usr/share/zoneinfo/Asia/Singapore /etc/localtime
  3. 重新启动服务器
  4. 完成了
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.