2014-06-11 35 views
0

我通常會得到相同的時間,但沒有對其中一臺主機,當我運行下面的程序:爲什麼RWTime使用與date命令使用的默認時區不同的默認時區?

int main() 
{ 
    RWTime now; 
    std::cout << now.asString() << "," << RWZone::local().timeZoneName() << std::endl; 
} 

我得到的輸出是這樣的:

$> date && ./simple_program 
Thu Jun 12 03:16:34 EST 2014 
06/12/2014 04:16:34,EST 

如果時區相同,他們怎麼會產生不同的結果?日期命令是正確的,但簡單程序的RWTime比現實早了一個小時。

回答

0

看來您的區域設置使用的是EST而不是EDT,因此date程序將返回比實際時間提前一個小時的時間。 RWZONE.local()似乎使用夏令時,但將時區名稱報告爲EST,而不是EDT

+0

RWTime提前一個小時,實時是由日期bash命令建議的時間。這裏如何解決區域設置問題? –

+0

'/ etc/localtime'指向什麼?我期望'日期'是在每年的這個時候將「時區」報告爲「EDT」。 – chepner

+0

它指向/ usr/share/zoneinfo/Australia/Sydney –