UNIX中的时区TZ设置
HPUX: 一个系统能够同时支持两个时区吗?
问题描述
一个 HP 系统能够同时支持两个时区吗? 我们正在考虑在我们位于密歇根州的 HP主机为位于德国的工厂再运行一个应用程序。这第二个应用程序需要系统的日期和时间来反映德国的时区,同时我们当前的应用程序需要美国东部时区的时间设置。
如何在一个 HP9000 中实现该任务?
解决方法
因为只有一个系统时钟,所以只可能有一个系统时间。但是每个用户可以通过设置’TZ’ 环境变量来位于不同的时区内。
系统时区 (TZ) 存储在文件 /etc/TIMEZONE 中,是在使用 set_parms 时区命令设置操作系统时建立的。对于一个时间不同于系统时间的用户,他们必须设置并导出 TZ 变量,这些变量通常在它们的 .profile 中。
例如,要将某个用户的时间设置为中部欧洲时间,夏令时,则应该向该用户的 .profile 文件添加下列内容:
TZ=MET-1METDST
export TZ
请参阅 tztab(4) Man Page。另请参阅 /usr/lib/tztab 文件:
#more /usr/lib/tztab
这样会为该用户 Shell 设置该变量,并一直保持到更改或注销时,但是它不能确保该应用程序会使用 shell TZ 变量。这取决于编程人员。
修改时区的方法:
Solaris:
在solaris中,修改时区需要修改/etc/TIMEZONE文件,其中的TZ=PRC就表示中国时区,我们可以将其替换为TZ=US/Pacific,再重启机器,就将时区修改为美国太平洋时区了。
这里需要注意三点:
1,在X86的机器上,需要再执行如下命令,更新/etc/rtc_config文件:
# rtc -z zone-name(这里的zone-name就是/etc/TIMEZONE中TZ的值)
# rtc -c
2,到底有多少种时区可以选择呢?我们可以进入/usr/share/lib/zoneinfo目录,其中有很多目录,包括US,也有很多文件,比如PRC;这表示US下还有很多时区,而PRC就是统一的时区。正因为如此,我们才看到TZ=PRC和TZ=US/Pacific这两种不同的形式。
3,需要重启系统使之生效。
Linux(Redhat and Suse):
1,在/usr/share/zoneinfo/目录下查询想要更换的时区名称,修改格式同上
2,将原有的localtime文件移走;
# mv /etc/localtime /etc/localtime-old
3,做新的localtime文件,将对应的时区文件链接过来
# ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
4,与硬件同步
# /sbin/hwclock --systohc
AIX:
1,查看当前时区(其他操作系统是date命令即可)
cat /etc/environment (查找TZ所在行)
2,为了妥善起见,建议使用smit修改时区
smit chtz
3,所有的时区信息在/usr/share/lib/zoneinfo目录
HPUX:
1,# set_parms timezone,可以通过交互的方式来修改时区。
所有Unix系统(不包括Linux),可以通过echo $TZ来查看当前时区。
时区的系统常见定义:
unix系统时区设置:
每个用户可以使用环境变量TZ来设置与系统不同的时区,这个设置将覆盖系统的设置。执行date命令,显示与系统不同的时区时间。
常见的系统时区定义:
Time Zones Defined on the System
Name Time Zone CUT Offset
CUT0GDT Coordinated Universal Time CUT
GMT0BST United Kingdom CUT
AZOREST1AZOREDT Azores, Cape Verde CUT -1
FALKST2FALKDT Falkland Islands CUT -2
GRNLNDST3GRNLNDDT Greenland, East Brazil CUT -3
AST4ADT Central Brazil CUT -4
EST5EDT Eastern United States, Colombia CUT -5
CST6CDT Central United States, Honduras CUT -6
MST7MDT Mountain United States CUT -7
PST8PDT Pacific United States, Yukon CUT -8
AST9ADT Alaska CUT -9
HST10HDT Hawaii, Aleutian Islands CUT -10
BST11BDT Bering Strait CUT -11
NZST-12NZDT New Zealand CUT +12
MET-11METDT Solomon Islands CUT +11
EET-10EETDT Eastern Australia CUT +10
JST-9JSTDT Japan CUT +9
KORST-9KORDT Korea CUT +9
WAUST-8WAUDT Western Australia CUT +8
TAIST-8TAIDT Taiwan CUT +8
THAIST-7THAIDT Thailand CUT +7
TASHST-6TASHDT Central Asia CUT +6
PAKST-5PAKDT Pakistan CUT +5
WST-4WDT Gorki, Central Asia, Oman CUT +4
MEST-3MEDT Turkey CUT +3
SAUST-3SAUDT Saudi Arabia CUT +3
WET-2WET Finland CUT +2
USAST-2USADT South Africa CUT +2
NFT-1DFT Norway CUT +1
中文:
系统时区定义
定义 时区 GMT时间定义
CUT0GDT 格林威治时间 CUT
GMT0BST 伦敦 都柏林 里斯本 爱丁堡 CUT
AZOREST1AZOREDT 亚速尔群岛 佛得角群岛 CUT -1
FALKST2FALKDT 福克兰群岛(西大西洋) CUT -2
GRNLNDST3GRNLNDDT 格陵兰 巴西利亚 纽芬兰 CUT -3
AST4ADT 大西洋时间(加拿大)南美洲西部 圣地亚哥 CUT -4
EST5EDT 东部时间(美加) 印第安纳(东部) CUT -5
CST6CDT 中部时间(美加) 墨西哥城 CUT -6
MST7MDT 山地时间(美加) 亚利桑那 CUT -7
PST8PDT 太平洋时间(美加) 蒂华纳 CUT -8
AST9ADT 阿拉斯加 CUT -9
HST10HDT 夏威夷 CUT -10
BST11BDT 中途岛 萨摩亚群岛 CUT -11
NZST-12NZDT 纽西兰 新西兰(太平洋南部岛国) CUT +12
MET-11METDT 太平洋中部 所罗门群岛 CUT +11
EET-10EETDT 堪培拉 墨尔本 悉尼 关岛 CUT +10
JST-9JSTDT 东京 CUT +9
KORST-9KORDT 汉城 大阪 扎幌 CUT +9
WAUST-8WAUDT 北京 上海 台湾 香港 新加坡 CUT +8
TAIST-8TAIDT 台湾(中国) CUT +8
THAIST-7THAIDT 曼谷 河内 雅加达 胡志明市 CUT +7
TASHST-6TASHDT 中亚 阿马提 达卡 CUT +6
PAKST-5PAKDT 伊斯兰堡 卡拉奇 CUT +5
WST-4WDT 高尔基 中亚 阿曼 CUT +4
MEST-3MEDT 土耳其 CUT +3
SAUST-3SAUDT 沙乌地阿拉伯 CUT +3
WET-2WET 芬兰 CUT +2
USAST-2USADT 南非 东欧 CUT +2
NFT-1DFT 挪威(北欧国家)罗马 CUT +1
————————————————
版权声明:本文为CSDN博主「Cneagle」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/cneaglelee/article/details/5988047