[每日短篇]0-Linux 的 timezone 设置

结论

对 Linux 系统自身来说,影响 timezone 的是 /etc/localtime 这个文件,对于安装了 tzdata 包的系统,在 /usr/share/zoneinfo 目录下有各 timezone 的文件,以 'Asia/Shanghai' 为例指定 timezone 可以
sudo ln -fs /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
也可以
sudo cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
如果保留 tzdata 推荐 ln,否则就 cp。只要 /etc/localtime 是正确的文件,卸载掉 tzdata 当前 timezone 依然有效。

环境变量 TZ 可以覆盖系统的 timezone 设置,前提是 tzdata 存在,但是 Java 自带这些数据,没有 tzdata 时 TZ 照样生效。

Dockerfile 里设定 timezone

给 Java 等自带时区信息的程序使用只需要类似 ENV TZ=Asia/Shanghai 即可,需要整个容器设置或者程序没有自带时区的使用下面的方法。

Ubuntu 安装和指定 timezone
ENV TZ=Asia/Shanghai

RUN apt-get update \
 && apt-get install -y tzdata \
 && ln -fs /usr/share/zoneinfo/$TZ /etc/localtime \
 && rm -rf /var/lib/apt/lists/*

不用判断 tzdata 是否存在,直接更新到最新版本更好。

Alpine 安装和指定 timezone
RUN apk add --no-cache tzdata \
 && cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \
 && apk del tzdata

注意上面2种方式分别使用了 ln / cp 的方式,并且一个设置了 TZ 一个没有,根据需要自由组合使用。

转载于:https://my.oschina.net/u/1762727/blog/2354341

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值