从终端设置时区
我想从终端更改系统时钟的时区。
这可以用来完成
tzselect
“在终端打开了一个gui”
要么
sudo cp /usr/share/zoneinfo/Europe/London /etc/localtime
“将设置为gmt”
但有没有办法设置时区只有偏移ie.-1或+5等?
我需要这样做,因为我正在编写一个应用程序来调整时间偏移或报告日志,而我所拥有的唯一信息是用户IP。 我可以使用webapp来查找IP的位置,但是我需要设置偏移量,这很容易如果我可以得到位置的偏移量,但是如果我需要找到区域和城市那将是一个真正的痛苦。
如果有人知道如何用+/-小时设置系统时钟的答案会很棒。
要从终端更改时区,只需按键盘上的Ctrl + Alt + T即可打开终端。 打开时,运行以下命令:
sudo dpkg-reconfigure tzdata
打开后,只需按照屏幕更改时区即可。
您还可以使用新的timedatectl
在14.04中设置时间。
sudo timedatectl set-timezone America/New_York
我意识到这个线程有点陈旧,但我一直在寻找更好的解决方案,因为我需要在用户从我们的网站下载并部署后自动在VM中设置时区。 这就是我最终得到的结果:
echo "Setting TimeZone..." export tz=`wget -qO - http://geoip.ubuntu.com/lookup | sed -n -e 's/.*\(.*\)<\/TimeZone>.*/\1/p'` && timedatectl set-timezone $tz export tz=`timedatectl status| grep Timezone | awk '{print $2}'` echo "TimeZone set to $tz"
这将在新网络上启动后从服务器查询geoip.ubuntu.com(我的脚本检查连接的第一个过程),然后根据响应设置服务器的时区。
“wget -q0 – ”告诉wget只将结果输出到stdout,然后输出到$ tz变量。
希望它可以帮到某人!
您可以在/usr/share/zoneinfo/Etc
使用GMT± x文件。
sudo ln -fs /usr/share/zoneinfo/Etc/GMT$offset /etc/localtime
TL; DR /etc/localtime
是指向/usr/share/zoneinfo/Continent/City
文件的符号链接。 通过改变它指向的位置,您可以改变您的时区。
要更改时区,请删除/etc/localtime
并为所需城市指定符号链接。 例如, ls -l /etc/localtime
报告此文件指向/usr/share/zoneinfo/America/Denver
。 把它改成纽约,我做到了
-
sudo rm /etc/localtime
-
sudo ln -s /usr/share/zoneinfo/America/New_York /etc/localtime
- 等一下我的时钟来更新
下面的屏幕截图显示了timedatectl
的步骤和确认
更新时区的简便方法是使用sudo dpkg-reconfigure tzdata
。 但这并不是那么容易编写脚本。
如果您想通过脚本显式设置时区(例如,用于设置VM),这里有一个配方:
为您想要的时区设置变量,例如
tz=Europe/London tz=America/Anchorage tz=Etc/GMT+6
有效值是/usr/share/zoneinfo
下的目录和文件名。
然后简单
sudo cp -vf /usr/share/zoneinfo/$tz /etc/localtime echo $tz | sudo tee /etc/timezone
请注意, /etc/localtime
和/etc/timezone
必须一致。
可能现在重新启动以更新所有服务(例如cron)。
这是我使用的方法,以美国为中心,因为我不需要担心非美国时区。
如果我需要确定当前时区,我要么:
cat /etc/timezone
要么
sudo hwclock --show
然后我做:
timedatectl set-timezone <_designation_>
其中<_designation_>
是以下之一:
美国/东部
美国/中部
美/山
美国/太平洋
美国/阿拉斯加
美国/阿留申
美国/亚利桑那
美国/东印第安纳
美国/夏威夷
美国/印第安纳州斯塔克
美国/密歇根州
美国/太平洋 – 新
美国/萨摩亚
例如:
timedatectl set-timezone US/Eastern
其他时区名称可在此处找到: https : //en.wikipedia.org/wiki/List_of_tz_database_time_zones
除非您选择要与每个时区偏移对应的时区文件,否则无法执行此操作。
一些答案建议使用/ usr / share / zoneinfo / Etc中的文件,但这些问题是它们与DST无关。
因此,除非您选择一些时区配置来匹配每个偏移量,或者您不关心DST,否则无法一般地执行此操作。