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

#1 楼

使用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评论的支持者,而是将其放在此处,因为这对我来说是最好的方式。我想要一个单一的命令行工具来更改时区,而不是想要启动整个菜单或gui程序(我不知道tzdata的功能,工作原理,但是我不需要这一行命令)。谢谢!

–菲尔·瑞安(Phil Ryan)
2015年6月1日23:21

奇迹般有效 ;)

–user332660
16-2-24在10:01



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

–丹尼尔·鲍尔(Daniel Bower)
16 Mar 23 '16 at 15:54

这对我不起作用;但是dpkg-reconfigure可以解决问题。

–安蒂·哈帕拉(Antti Haapala)
16年4月10日在11:39

14.04.4 ubuntu服务器

–安蒂·哈帕拉(Antti Haapala)
16年4月10日在11:44

#2 楼

作为root用户,您必须执行:

dpkg-reconfigure tzdata


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

#3 楼

以下工作。对于GMT:

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


对于EST:

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


评论


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

–阿斯范·卡兹
15年6月8日在9:19

这是最好的

– HasanTıngır
18-10-17在12:48

我对此表示警告。如果某事或某人意外覆写的/ etc /本地时间你刚才失去了你的区信息的文件。最好只将zoneinfo文件复制到/ etc / localtime文件中。

–罗伊斯顿(J Roysdon)
20年5月4日,19:33

在docker映像上,可能没有立即安装timedatectl,并且安装仅用于更改时区的工具实在是过头了。这是仅允许使用系统命令设置时区的唯一答案。从这个意义上说,这是最好的答案。

–cytsunny
20-10-12在5:24

#4 楼

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

timedatectl list-timezones


,然后选择自己的时区,例如:

timedatectl set-timezone Europe/Athens


就这样! ,:-)

#5 楼

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

Etc/GMT


您可以使用以下格式:

Region "/" City 


/etc/timezone的示例:

Europe/Athens


Europe/Paris
Europe/London


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

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

#6 楼

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

#7 楼

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


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

只需使用上面的命令。

评论


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

–太阳
18年6月12日在15:25

#8 楼

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

我将其称为tz-set

#9 楼

以root用户身份必须执行:

ln -fs /usr/share/zoneinfo/Europe/Warsaw /etc/localtime && dpkg-reconfigure --frontend noninteractive tzdata

评论


请至少说明此命令如何更改时区。

–Parto
19年3月19日在17:15

我得到>未安装tzdata

– Nam G VU
20年8月2日在10:32

#10 楼

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


sudo su
cp /usr/share/zoneinfo/Asia/Singapore /etc/localtime
重启服务器
完成