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 即可。我們...