Linux|CentOS7中设置时区

Linux 中如果时区不对, 可能产生很多小问题, 会影响运行的服务同步, 而且如果在使用数据库自动生成时间时会出错等等, 这都是时区引起的问题. 今天我们就来看一下, Linux 中如何设置和修改时区.

设置系统时区

# 交换式设置命令
tzselect

# 依次选择设置的时区即可,下方为设置过程
[root@1889ac6ed47a /etc]# tzselect
Please identify a location so that time zone rules can be set correctly.
Please select a continent or ocean.
 1) Africa
 2) Americas
 3) Antarctica
 4) Arctic Ocean
 5) Asia
 6) Atlantic Ocean
 7) Australia
 8) Europe
 9) Indian Ocean
10) Pacific Ocean
11) none - I want to specify the time zone using the Posix TZ format.
#? 5
Please select a country.
 1) Afghanistan		  18) Israel		    35) Palestine
 2) Armenia		  19) Japan		    36) Philippines
 3) Azerbaijan		  20) Jordan		    37) Qatar
 4) Bahrain		  21) Kazakhstan	    38) Russia
 5) Bangladesh		  22) Korea (North)	    39) Saudi Arabia
 6) Bhutan		  23) Korea (South)	    40) Singapore
 7) Brunei		  24) Kuwait		    41) Sri Lanka
 8) Cambodia		  25) Kyrgyzstan	    42) Syria
 9) China		  26) Laos		    43) Taiwan
10) Cyprus		  27) Lebanon		    44) Tajikistan
11) East Timor		  28) Macau		    45) Thailand
12) Georgia		  29) Malaysia		    46) Turkmenistan
13) Hong Kong		  30) Mongolia		    47) United Arab Emirates
14) India		  31) Myanmar (Burma)	    48) Uzbekistan
15) Indonesia		  32) Nepal		    49) Vietnam
16) Iran		  33) Oman		    50) Yemen
17) Iraq		  34) Pakistan
#? 9
Please select one of the following time zone regions.
1) Beijing Time
2) Xinjiang Time
#? 1

The following information has been given:

	China
	Beijing Time

Therefore TZ='Asia/Shanghai' will be used.
Local time is now:	Sat Aug 29 10:33:56 CST 2020.
Universal Time is now:	Sat Aug 29 02:33:56 UTC 2020.
Is the above information OK?
1) Yes
2) No
#? 1

You can make this change permanent for yourself by appending the line
	TZ='Asia/Shanghai'; export TZ
to the file '.profile' in your home directory; then log out and log in again.

Here is that TZ value again, this time on standard output so that you
can use the /usr/bin/tzselect command in shell scripts:
Asia/Shanghai

更改 UTC 时间为 CST 时间

# 备份之前的localtime文件
mv localtime{,.bak}

# 更改CST上海时间
ln -s /usr/share/zoneinfo/Asia/Shanghai  /etc/localtime

# 测试
[root@1889ac6ed47a /etc]# date
Sat Aug 29 10:38:26 CST 2020

系统所有亚洲的时区时间都放在了/usr/share/zoneinfo/Asia 下了,用户可自行查看,系统/etc/localtime 是一个软链接文件,每当系统调用本地时间都会从这个文件里读取,访问软链接 localtime 相当于访问/usr/share/zoneinfo/Asia/Shanghai 时区文件。

Linux 中的时间是一个文件单独存储的, 又应了那句话, Linux 处处皆文件!