【问题标题】:Why is RWTime using a different default timezone than the one the date command uses?为什么 RWTime 使用与 date 命令使用的默认时区不同的默认时区?
【发布时间】:2014-06-11 17:22:06
【问题描述】:

我通常得到相同的时间,但有一个主机,当我运行以下简单程序时:

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 比实际时间提前一小时。

【问题讨论】:

    标签: linux bash date time rogue-wave


    【解决方案1】:

    您的语言环境似乎使用的是EST,而不是EDT,因此date 程序返回的时间比实际时间早一小时。 RWZONE.local() 似乎使用夏令时,但将时区名称报告为EST,而不是EDT

    【讨论】:

    • RWTime 提前一小时,实际时间是 date bash 命令建议的时间。如何在这里修复语言环境?
    • /etc/localtime 指向什么?我希望 date 在每年的这个时候将时区报告为 EDT
    • 嗯。这与我的预期完全不同(EST 是(北美)东部标准时间,而不是澳大利亚东部标准时间)。
    • 是的,主机在澳大利亚……但让我失望的是为什么 date 命令和 RWTime 语言环境相隔一小时
    • 我愿意打赌RWZone.isDaylight() 返回true,这表明尽管有标签,但两个程序使用不同的时区。 date 使用真正的东部标准时间(无夏令时),RWZone 使用东部夏令时 (EDT),考虑到后来报告的时间,但称其为 EST。
    猜你喜欢
    • 1970-01-01
    • 2018-04-20
    • 2019-06-14
    • 2012-07-05
    • 1970-01-01
    • 1970-01-01
    • 2012-10-13
    • 2011-04-30
    相关资源
    最近更新 更多