linux系统时区问题

1. centos 7

转载自:https://www.cnblogs.com/zhangeamon/p/5500744.html

查看时区: timedatectl

$timedatectl status
Local time: 四 2014-12-25 10:52:10 CST
Universal time: 四 2014-12-25 02:52:10 UTC
RTC time: 四 2014-12-25 02:52:10
Timezone: Asia/Shanghai (CST, +0800)
NTP enabled: yes
NTP synchronized: yes
RTC in local TZ: no
DST active: n/a

# timedatectl list-timezones # 列出所有时区

# timedatectl set-local-rtc 1 # 将硬件时钟调整为与本地时钟一致, 0 为设置为 UTC 时间
# timedatectl set-timezone Asia/Shanghai # 设置系统时区为上海
其实不考虑各个发行版的差异化, 从更底层出发的话, 修改时间时区比想象中要简单:

# cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

2. 使docker内时区和本地(local)时区一致,有下列几种方法

a) 已经启动了docker container, 手动修改

# 进入docker内部修改
echo "Asia/shanghai" > /etc/timezone;

# 退出docker container
docker cp /usr/share/zoneinfo/Asia/Shanghai <name/ID>:/etc/localtime

b) 在写docker file时,增加下面语句

# CentOS

RUN echo "Asia/shanghai" > /etc/timezone;

# Ubuntu

RUN cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

c) 在启动docker container 时后增加-v部分

docker run --name mysqldb -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7 -v /etc/localtime:/etc/localtime:ro
原文地址:https://www.cnblogs.com/snow-backup/p/11269018.html