穆琪的博客

一个程序员的自传

Linux命令之tzselect-选择时区

本文链接:http://codingstandards.iteye.com/blog/834280   (转载请注明链接)

用途说明

  tzselect命令用于选择时区。要注意的是tzselect只是帮我们把选择的时区显示出来,并不会实际生效,也就是说它仅仅告诉我们怎么样去设置环境变量TZ。(TZ = Time Zone)(The  tzselect  program asks the user for information about the current location, and outputs the resulting time zone description to standard output.  The output is suitable as a value for the TZ environment variable. All interaction with the user is done via standard input and standard error.)如果你要永久更改时区,按照tzselect命令提示的信息,在.profile或者/etc/profile中设置正确的TZ环境变量并导出。还有另外一种更改时区的方法就是直接更改系统配置文件/etc/sysconfig/clock,然后修改符号链接/etc/locatime对应的文件,详见示例三。
 

常用参数

无。

使用示例

示例一 将时区更改为北京

[root@new55 ~]# 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:      Mon Dec  6 09:40:35 CST 2010.
Universal Time is now:  Mon Dec  6 01:40:35 UTC 2010.
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
[root@new55 ~]#
现在要做的事情就是按照提示,把  TZ='Asia/Shanghai'; export TZ   添加到.profile中(bash对应加到.bash_profile)。
 

示例二 将时区更改为夏威夷

[root@new55 ~]# 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.
#? 2
Please select a country.
 1) Anguilla                 27) Honduras
 2) Antigua & Barbuda        28) Jamaica
 3) Argentina                29) Martinique
 4) Aruba                    30) Mexico
 5) Bahamas                  31) Montserrat
 6) Barbados                 32) Netherlands Antilles
 7) Belize                   33) Nicaragua
 8) Bolivia                  34) Panama
 9) Brazil                   35) Paraguay
10) Canada                   36) Peru
11) Cayman Islands           37) Puerto Rico
12) Chile                    38) St Barthelemy
13) Colombia                 39) St Kitts & Nevis
14) Costa Rica               40) St Lucia
15) Cuba                     41) St Martin (French part)
16) Dominica                 42) St Pierre & Miquelon
17) Dominican Republic       43) St Vincent
18) Ecuador                  44) Suriname
19) El Salvador              45) Trinidad & Tobago
20) French Guiana            46) Turks & Caicos Is
21) Greenland                47) United States
22) Grenada                  48) Uruguay
23) Guadeloupe               49) Venezuela
24) Guatemala                50) Virgin Islands (UK)
25) Guyana                   51) Virgin Islands (US)
26) Haiti
#? 47
Please select one of the following time zone regions.
 1) Eastern Time
 2) Eastern Time - Michigan - most locations
 3) Eastern Time - Kentucky - Louisville area
 4) Eastern Time - Kentucky - Wayne County
 5) Eastern Time - Indiana - most locations
 6) Eastern Time - Indiana - Daviess, Dubois, Knox & Martin Counties
 7) Eastern Time - Indiana - Pulaski County
 8) Eastern Time - Indiana - Crawford County
 9) Eastern Time - Indiana - Pike County
10) Eastern Time - Indiana - Switzerland County
11) Central Time
12) Central Time - Indiana - Perry County
13) Central Time - Indiana - Starke County
14) Central Time - Michigan - Dickinson, Gogebic, Iron & Menominee Counties
15) Central Time - North Dakota - Oliver County
16) Central Time - North Dakota - Morton County (except Mandan area)
17) Mountain Time
18) Mountain Time - south Idaho & east Oregon
19) Mountain Time - Navajo
20) Mountain Standard Time - Arizona
21) Pacific Time
22) Alaska Time
23) Alaska Time - Alaska panhandle
24) Alaska Time - Alaska panhandle neck
25) Alaska Time - west Alaska
26) Aleutian Islands
27) Hawaii
#? 27
The following information has been given:
        United States
        Hawaii
Therefore TZ='Pacific/Honolulu' will be used.
Local time is now:      Sun Dec  5 16:37:02 HST 2010.
Universal Time is now:  Mon Dec  6 02:37:02 UTC 2010.
Is the above information OK?
1) Yes
2) No
#? 1
You can make this change permanent for yourself by appending the line
        TZ='Pacific/Honolulu'; 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:
Pacific/Honolulu
[root@new55 ~]#
[root@new55 ~]# cat /etc/sysconfig/clock
# The ZONE parameter is only evaluated by system-config-date.
# The timezone of the system is defined by the contents of /etc/localtime.
ZONE="Asia/Shanghai"
UTC=true
ARC=false
[root@new55 ~]#
注意:tzselect命令只告诉你选择的时区的 写法,并不会生效。所以现在它还是东8区北京时间。
[root@new55 ~]# date -R
Mon, 06 Dec 2010 10:46:11 +0800
[root@new55 ~]#
[root@new55 ~]# TZ='Pacific/Honolulu'; export TZ
[root@new55 ~]# date -R
Sun, 05 Dec 2010 16:46:44 -1000
[root@new55 ~]#
[root@new55 ~]# exit
logout
重新登录TZ就没有了。
Last login: Mon Dec  6 09:39:30 2010 from 192.168.6.106
[root@new55 ~]# echo $TZ
[root@new55 ~]#

示例三 通过更改配置文件来修改时区

[root@new55 ~]# cat /etc/sysconfig/clock
# The ZONE parameter is only evaluated by system-config-date.
# The timezone of the system is defined by the contents of /etc/localtime.
ZONE="Asia/Shanghai"
UTC=true
ARC=false
[root@new55 ~]#
修改linux系统时区
    1) 可修改/etc/sysconfig/clock
        ZONE=Asia/Shanghai ( 查/usr/share/zoneinfo 下面的文件。 )
        UTC=false ( 硬件时钟是否为 UTC 或者说 GMT 时钟。 )
        ARC=false (如果是在 Alpha 机器上,则设置为 true 。 )
    (把硬件时钟设置为 UTC 的好处就是他能自动设置夏时制,缺点是,在安装有多重操作系统启动的机器上,在另外的操作系统上时钟会错误。 )
    2) rm /etc/localtime
        Zhy: 这个文件是个符号链接?如果是在系统安装时就设置好的话,就是个普通文件。
    3) 以上海为例:
        ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime


© 鲁ICP备18041558号
Powered by Z-BlogPHP & Yiwuku.com