Linux下跟时区timezone设置相关的东西

来自三线的随记
Admin讨论 | 贡献2021年1月31日 (日) 18:52的版本
(差异) ←上一版本 | 最后版本 (差异) | 下一版本→ (差异)

Ubuntu/Centos 依赖于package tzdata


所有timezone信息位于/usr/share/zoneinfo/ 目录下


修改OS时区

timedatectl set-timezone "Asia/Shanghai"

echo "Asia/Hong_Kong" > /etc/timezone
ln -sf /usr/share/zoneinfo/Asia/Hong_Kong /etc/localtime

ps: 网上有的文章会使用命令cp复制zoneinfo下面的时区文件覆盖到/etc/localtime,但是我之前似乎印象中看过这样的操作是不规范的,有可能导致特定的程序(例如java)出现异常,所以最好还是遵循系统的规范使用软连接的形式设置localtime这个文件

通过环境变量设置时区(区分大小写)

root@temp:/usr/share/zoneinfo/Asia# export TZ="Asia/Shanghai"
root@temp:/usr/share/zoneinfo/Asia# date
Sun Jan 31 18:38:30 CST 2021
root@temp:/usr/share/zoneinfo/Asia# export TZ="Asia/Hong_Kong"
root@temp:/usr/share/zoneinfo/Asia# date
Sun Jan 31 18:37:56 HKT 2021