系统时区的设置与查询

查看系统时区信息

对于类UNIX系统, Linux & MacOS 常规的系统时区信息均是通过文件的形式存放在 /usr/share/zoneinfo/ 目录下。可以通过tree命令快速查询

$: tree -L 2 /usr/share/zoneinfo/
/usr/share/zoneinfo/
├── +VERSION
├── Africa
│   ├── Abidjan
│   ├── Accra
│   ├── Addis_Ababa
......
├── US
│   ├── Alaska
│   ├── Aleutian
│   ├── Arizona
│   ├── Central
│   ├── East-Indiana
│   ├── Eastern
│   ├── Hawaii
│   ├── Indiana-Starke
│   ├── Michigan
│   ├── Mountain
│   ├── Pacific
│   ├── Pacific-New
│   └── Samoa
├── UTC
├── Universal
├── W-SU
├── WET
├── Zulu
├── iso3166.tab
├── posixrules
└── zone.tab

设置系统时区

修改系统默认时区,直接修改/etc/locatime文件即可。可直接从/usr/share/zoneinfo/目录中找出目标时区覆盖/etc/locatime文件即可。或者可以通过软连接的方式操作。

系统时区的应用

系统时区问题主要应用是在容器化部署是,提供一个默认时区的基础时区镜像。以东8区作为镜像的时区,具体 Dockerfile 如下:

FROM alpine:latest
RUN  apk --update --no-cache add tzdata \
     && cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

构建基础镜像:

$: docker build -t timezone8:latest .