我使用Ubuntu 10.04並設置系統時區「歐洲/倫敦」。 我想以上面的格式設置系統時區而不是「IST,EST等」。無論如何,我可以用我們設置爲「歐洲/倫敦」的相同格式獲取時區字符串。如何查找當前系統時區
上面的鏈接給出了重複,但實際上它不回答我的問題。在發佈這個問題之前,我檢查了上面的鏈接。
請建議。
在此先感謝。
我使用Ubuntu 10.04並設置系統時區「歐洲/倫敦」。 我想以上面的格式設置系統時區而不是「IST,EST等」。無論如何,我可以用我們設置爲「歐洲/倫敦」的相同格式獲取時區字符串。如何查找當前系統時區
上面的鏈接給出了重複,但實際上它不回答我的問題。在發佈這個問題之前,我檢查了上面的鏈接。
請建議。
在此先感謝。
time.h
定義一個函數來檢索系統時區,並將其保存在兩個字符串變量:
#include <stdlib.h>
#include <stdio.h>
#include <time.h>
int main() {
char * TZ = getenv("TZ");
if (TZ)
printf("TZ: %s\n", TZ);
tzset();
printf("Timezone: %s/%s\n", tzname[0], tzname[1]);
printf("GMT %s%ld\n", timezone >= 0 ? "+" : "", timezone);
printf("DST %s\n", daylight ? "ON" : "OFF");
}
請注意,在某些系統(如Linux)的這個函數獲取它從TZ
環境變量的信息。如果未設置,則會給出近似值或變量保持未初始化狀態。
在我的OS X上,這個信息似乎來自其他地方。
我跑你的程序,它給了我這個。 amrith @ amrith-VBOX:〜/所以$ ./tz 區:EST/EDT GMT 18000 DST ON amrith @ amrith-VBOX:〜/所以$ 沒有什麼要求的問題,我不不要以爲... – amrith
是的上面的程序不會給出要求的輸出。產量應該像「亞洲/加爾各答」或「歐洲/倫敦」一樣排列。 –
爲什麼不只是貓/ etc/timezone?
[email protected]:~/so$ more /etc/timezone
America/New_York
謝謝。因爲我知道所有類型的Linux操作系統(Red Hat,Fedora,cent os,ubuntu等)都不存在/ etc/timezone,所以我認爲它不是通用的解決方案。 –
真的嗎?我應該提醒你,你的問題是:「我正在使用Ubuntu 10.04和...」。 – amrith
看看這個:http://www.boost.org/doc/libs/1_54_0/doc/html/date_time.html但我不確定是否有這樣的事情。 – Dino
請參閱[如何查找當前系統時區?](http://stackoverflow.com/questions/3118582/how-do-i-find-the-current-system-timezone?rq=1) – elmov
感謝您的更新。我檢查了上述鏈接,但在鏈接中沒有找到合適的解決方案,我發現那是爲什麼我第二次問這個問題。有沒有人有任何想法,請分享它。 –