您的位置:首页 > 运维架构 > Linux

Linux查看及设置系统时区

2015-06-04 22:46 561 查看
一、什么是时区呢?

关于时区的概念,其实初中地理课已经涉及,很多人都多少了解一些,可能只是细节搞不太清楚。为什么会将地球分为不同时区呢?因为地球总是自西向东自转,东边总比西边先看到太阳,东边的时间也总比西边的早。东边时刻与西边时刻的差值不仅要以时计,而且还要以分和秒来计算。整个地球分为二十四时区,每个时区都有自己的本地时间。在国际无线电通信场合,为了统一起见,使用一个统一的时间,称为通用协调时(UTC,UniversalTime
Coordinated)。UTC与格林尼治平均时(GMT,GreenwichMeanTime)一样,都与英国伦敦的本地时相同。

CST:中国标准时间(ChinaStandardTime),这个解释可能是针对RedHatLinux。

UTC:协调世界时,又称世界标准时间,简称UTC,从英文国际时间/法文协调时间”UniversalTime/TempsCordonné”而来。中国大陆、香港、澳门、台湾、蒙古国、新加坡、马来西亚、菲律宾、澳洲西部的时间与UTC的时差均为+8,也就是UTC+8。

GMT:格林尼治标准时间(旧译格林威治平均时间或格林威治标准时间;英语:GreenwichMeanTime,GMT)是指位于英国伦敦郊区的皇家格林尼治天文台的标准时间,因为本初子午线被定义在通过那里的经线。

关于时区分布图,大家可以参考http://www.timedate.cn/time/timezone.htm,我们国家跨越了东五区、东六区、东七区、东八区、东九区五个时区,一般都统一采用东八区计时时间。





二、Linux系统如何查看设置所在的时区呢?

方法1:使用date命令查看时区

[root@db-server~]#date-R


Sun,11Jan201507:10:28-0800



如上RFC2822format所示,上面命令输出了-0800表示西八区,是美国旧金山所在的时区,下面表示我们国家的东八区(+0800)

[root@lnx01~]#date-R


Sun,11Jan201523:06:02+0800



[b]方法2:查看clock系统配置文件[/b]

[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,12Jan201510: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,11Jan201518:42:49-0800
[root@db-server~]#
方式2:修改链接/etc/locatime的时区文件:

[root@db-server~]#ln/usr/share/zoneinfo/Asia/Shanghai/etc/localtime

ln:creatinghardlink`/etc/localtime'to`/usr/share/zoneinfo/Asia/Shanghai':Fileexists

[root@db-server~]#rm/etc/localtime

rm:removeregularfile`/etc/localtime'?y

[root@db-server~]#ln-sf/usr/share/zoneinfo/Asia/Shanghai/etc/localtime

[root@db-server~]#date-R

Mon,12Jan201510:56:10+0800

方法3:使用tzselect设置时区

例子,将系统时区设置为东八区(北京时间)

[root@db-server~]#tzselect
Pleaseidentifyalocationsothattimezonerulescanbesetcorrectly.
Pleaseselectacontinentorocean.
1)Africa
2)Americas
3)Antarctica
4)ArcticOcean
5)Asia
6)AtlanticOcean
7)Australia
8)Europe
9)IndianOcean
10)PacificOcean
11)none-IwanttospecifythetimezoneusingthePosixTZformat.
#?5
Pleaseselectacountry.
1)Afghanistan18)Israel35)Palestine
2)Armenia19)Japan36)Philippines
3)Azerbaijan20)Jordan37)Qatar
4)Bahrain21)Kazakhstan38)Russia
5)Bangladesh22)Korea(North)39)SaudiArabia
6)Bhutan23)Korea(South)40)Singapore
7)Brunei24)Kuwait41)SriLanka
8)Cambodia25)Kyrgyzstan42)Syria
9)China26)Laos43)Taiwan
10)Cyprus27)Lebanon44)Tajikistan
11)EastTimor28)Macau45)Thailand
12)Georgia29)Malaysia46)Turkmenistan
13)HongKong30)Mongolia47)UnitedArabEmirates
14)India31)Myanmar(Burma)48)Uzbekistan
15)Indonesia32)Nepal49)Vietnam
16)Iran33)Oman50)Yemen
17)Iraq34)Pakistan
#?9
Pleaseselectoneofthefollowingtimezoneregions.
1)eastChina-Beijing,Guangdong,Shanghai,etc.
2)Heilongjiang(exceptMohe),Jilin
3)centralChina-Sichuan,Yunnan,Guangxi,Shaanxi,Guizhou,etc.
4)mostofTibet&Xinjiang
5)westTibet&Xinjiang
#?1
Thefollowinginformationhasbeengiven:
China
eastChina-Beijing,Guangdong,Shanghai,etc.
ThereforeTZ='Asia/Shanghai'willbeused.
Localtimeisnow:SunJan1123:31:51CST2015.
UniversalTimeisnow:SunJan1115:31:51UTC2015.
IstheaboveinformationOK?
1)Yes
2)No
#?yes
Pleaseenter1forYes,or2forNo.
#?1
Youcanmakethischangepermanentforyourselfbyappendingtheline
TZ='Asia/Shanghai';exportTZ
tothefile'.profile'inyourhomedirectory;thenlogoutandloginagain.
HereisthatTZvalueagain,thistimeonstandardoutputsothatyou
canusethe/usr/bin/tzselectcommandinshellscripts:
Asia/Shanghai
注意:tzselect命令只告诉你选择的时区的写法,并不会生效。所以现在它还不是东8区北京时间。你可以在.profile、.bash_profile或者/etc/profile中设置正确的TZ环境变量并导出。例如在.bash_profile里面设置TZ='Asia/Shanghai';exportTZ并使其生效。

[root@db-server~]#source.bash_profile
[root@db-server~]#date
SunJan1123:37:40CST2015


[root@db-server~]#date-R

Mon,12Jan201510:42:26+0800

[root@db-server~]#cp/usr/share/zoneinfo/America/Los_Angeles/etc/localtime

cp:overwrite`/etc/localtime'?y

[root@db-server~]#date-R

Sun,11Jan201518:42:49-0800

[root@db-server~]#


[root@db-server~]#date-R

Mon,12Jan201510:42:26+0800

[root@db-server~]#cp/usr/share/zoneinfo/America/Los_Angeles/etc/localtime

cp:overwrite`/etc/localtime'?y

[root@db-server~]#date-R

Sun,11Jan201518:42:49-0800

[root@db-server~]#




内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: