转载自:
https://blog.csdn.net/huangjin0507/article/details/46368623
二、Linux系统如何查看设置所在的时区呢?
方法1:使用date命令查看时区
[root@db-server ~]# date -R
Sun, 11 Jan 2015 07:10:28 -0800
如上RFC 2822 format所示,上面命令输出了-0800表示西八区,是美国旧金山所在的时区,下面表示我们国家的东八区(+0800)
[root@lnx01 ~]# date -R
Sun, 11 Jan 2015 23:06:02 +0800
方法2:查看clock系统配置文件
[root@db-server ~]# more /etc/sysconfig/clock
ZONE=”America/Los_Angeles”
UTC=true
ARC=false
如上所示,表示该系统设置的时区为“America/Los_Angeles”,也就是西八区。
三、Linux系统如何设置系统所在的时区呢?
方法1:在/usr/share/zoneinfo/下面有很多时区文件,可以复制这些时区文件覆盖/etc/localtime文件:
[root@db-server ~]# date -R
Mon, 12 Jan 2015 10:42:26 +0800
[root@db-server ~]# cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
cp: overwrite `/etc/localtime’? y
[root@db-server ~]# date -R
Sun, 11 Jan 2015 18:42:49 -0800
[root@db-server ~]#
方式2:修改链接/etc/locatime的时区文件:
[root@db-server ~]# ln /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
ln: creating hard link /etc/localtime' to
/usr/share/zoneinfo/Asia/Shanghai’: File exists
[root@db-server ~]# rm /etc/localtime
rm: remove regular file `/etc/localtime’? y
[root@db-server ~]# ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
[root@db-server ~]# date -R
Mon, 12 Jan 2015 10:56:10 +0800
方法3:使用tzselect设置时区
例子,将系统时区设置为东八区(北京时间)
[root@db-server ~]# 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) east China - Beijing, Guangdong, Shanghai, etc.
2) Heilongjiang (except Mohe), Jilin
3) central China - Sichuan, Yunnan, Guangxi, Shaanxi, Guizhou, etc.
4) most of Tibet & Xinjiang
5) west Tibet & Xinjiang
? 1
The following information has been given:
China
east China - Beijing, Guangdong, Shanghai, etc.
Therefore TZ=’Asia/Shanghai’ will be used.
Local time is now: Sun Jan 11 23:31:51 CST 2015.
Universal Time is now: Sun Jan 11 15:31:51 UTC 2015.
Is the above information OK?
1) Yes
2) No
? yes
Please enter 1 for Yes, or 2 for 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
注意:tzselect命令只告诉你选择的时区的写法,并不会生效。所以现在它还不是东8区北京时间。你可以在.profile、.bash_profile或者/etc/profile中设置正确的TZ环境变量并导出。 例如在.bash_profile里面设置 TZ=’Asia/Shanghai’; export TZ并使其生效。
[root@db-server ~]# source .bash_profile
[root@db-server ~]# date
Sun Jan 11 23:37:40 CST 2015
[root@db-server ~]# date -R
Mon, 12 Jan 2015 10:42:26 +0800
[root@db-server ~]# cp /usr/share/zoneinfo/America/Los_Angeles /etc/localtime
cp: overwrite /etc/localtime'? y
/etc/localtime’? y
[root@db-server ~]# date -R
Sun, 11 Jan 2015 18:42:49 -0800
[root@db-server ~]#
[root@db-server ~]# date -R
Mon, 12 Jan 2015 10:42:26 +0800
[root@db-server ~]# cp /usr/share/zoneinfo/America/Los_Angeles /etc/localtime
cp: overwrite
[root@db-server ~]# date -R
Sun, 11 Jan 2015 18:42:49 -0800
[root@db-server ~]#