UNIX中的時區TZ設定

2021-05-23 12:13:35 字數 4702 閱讀 7546

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

關於時區的環境變數TZ

我們在linux中設定時區的時候通常是通過設定tz環境變數達到目的 bash中 export tz cst 8 設定為東八區時間 c程式中 setenv tz cst 8 1 tz環境變數用於設定時區。它由各種時間函式用於計算相對於全球標準時間 utc 以前稱為格林威治標準時間 gmt 的時間。格式...

php中的時區設定

php中的時區設定 由於php5對date 函式進行了重寫,因此,目前的日期時間函式比系統時間少8小時。php語言預設使用的是標準的格林威治時間,所以要獲取本地當前時間必須更改php語言中的時區設定。更改php語言中的時區設定有以下兩種方法 1 修改php.ini檔案中的設定,找到 date 下的 ...

在 Docker 中設定時區

docker hub 中的官方映象,一般都預設設定為 utc 時間。而我們位於東八區,在啟動容器或構建自己的映象時,往往需要對時區進行設定。根據基礎映象的不同,設定時區的方法也有所區別。由於 debian 映象中已經包含了 tzdata,因此設定時區的方法比較簡單,只需新增環境變數 tz 即可。我們...