2014-06-11 30 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 –