Archive for March 14th, 2007

Linux 和 Solaris 下对 timezone 的操作

由 徐永久 发表于 2007年03月14日 14:39。

Linux 的 时区数据库存放在 /usr/share/zoneinfo 下,
系统启动时阅读 /etc/localtime 文件,采用 ln -s 命令即可方便的把时区设置为指定的时区文件。

# ln -fs /etc/localtime /usr/share/zoneinfo/PST8PDT

#zdump -v /etc/localtime | grep 2007
/etc/localtime Sun Mar 11 09:59:59 2007 UTC = Sun Mar 11 01:59:59 2007 PST isdst=0 gmtoff=-28800
/etc/localtime Sun Mar 11 10:00:00 2007 UTC = Sun Mar 11 03:00:00 2007 PDT isdst=1 gmtoff=-25200
/etc/localtime Sun Nov 4 08:59:59 2007 UTC = Sun Nov 4 01:59:59 2007 PDT isdst=1 gmtoff=-25200
/etc/localtime Sun Nov 4 09:00:00 2007 UTC = Sun Nov 4 01:00:00 2007 PST isdst=0 gmtoff=-28800

Linux 设置好时区后,还需要用 hwclock 同步 BIOS 时间和 OS 时间,重新启动后生效。

而 Solaris 下的数据库在 /usr/share/lib/zoneinfo 下,启动时的时区设置文件为

/etc/TIMEZONE -> /etc/default/init

bash-3.00# zdump -v US/Pacific|grep 2007
US/Pacific Wed Mar 14 06:31:44 2007 UTC = Tue Mar 13 23:31:44 2007 PDT isdst=1
US/Pacific Sun Mar 11 09:59:59 2007 UTC = Sun Mar 11 01:59:59 2007 PST isdst=0
US/Pacific Sun Mar 11 10:00:00 2007 UTC = Sun Mar 11 03:00:00 2007 PDT isdst=1
US/Pacific Sun Nov 4 08:59:59 2007 UTC = Sun Nov 4 01:59:59 2007 PDT isdst=1
US/Pacific Sun Nov 4 09:00:00 2007 UTC = Sun Nov 4 01:00:00 2007 PST isdst=0

Solaris 8 的时区补丁为 109809-06
Solaris 10/x86 的时区补丁为 122033

Linux 时区数据库可以搜索 tzdata