首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >boost day_clock::local_day()难题

boost day_clock::local_day()难题
EN

Stack Overflow用户
提问于 2016-05-06 20:42:38
回答 1查看 476关注 0票数 0

我有一段代码在法兰克福的一台机器上执行:

代码语言:javascript
复制
    //hardcoding for simplicity but these get passed
    int year = 2016;
    int month = 05;
    int day = 6;        

    boost::gregorian::date gdToday (boost::gregorian::day_clock::local_day());
    LOG(DEBUG, 0) << " today=" << gdToday;

    if (boost::gregorian::date(year, month, day) > gdToday)
    {
        // log
        return;
    }

在我的日志中,我看到了以下内容:2016-05-06 02:40:40.479057

我知道日志时间戳在UTC。我假设day_clock::local_day()给了我CEST时间。

所以2016-05-06 02:40将是2016-05-06 :40。但是为什么gdToday仍然给我2016-5-05?正因为如此,如果比较失败了。

我已经试着读了助推博士,但仍然没有太多的线索。可能是boost::gregorian::date::operator<<。我认为使用day_clock::universal_day()也没有任何用处。

有什么暗示或想法吗?谢谢!!

EN

回答 1

Stack Overflow用户

发布于 2016-05-06 20:52:53

有意思的。当然,如果不知道地点和时区,我们什么也看不见。你的假设不能割断它。

由于您实际上没有展示如何在日志中显示local_day,所以我可以推断,您不小心将一天硬编码到格式化程序中,而不是使用懒惰的参与者(所有boost格式化程序都是在日志消息格式化时被调用的懒散角色)。

这意味着它从一开始就不会进展到第二天,除非您的格式被重新初始化(例如进程重新启动)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37081095

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档