使用chrono获取当天

时间:2013-07-31 03:54:22

标签: c++ c++11 chrono

C ++ 11提供了一个返回当前时间的函数。但是,我找不到返回当天的功能。我用boost来做到这一点。

boost::gregorian::date TODAY = boost::gregorian::day_clock::local_day();

有没有办法用chrono实现相同的结果?

编辑:我想要的是使用time_point来表示当天。这意味着小时,分钟和秒钟为零2013-07-31 00:00:00

1 个答案:

答案 0 :(得分:6)

Chronos并未延伸至日期;这真的不是它的目的。日期问题和“时间”问题之间的分界线是一天。而Chrono没有定义日期类型。

但你可以将时间除以24小时。或者甚至更好,定义你自己的持续时间typedef并使用它:

typedef std::duration<std::uint32_t, std::ratio<3600 * 24>> day;

然后只使用use a time_point类型:

std::chrono::time_point<std::chrono::system_clock, day> day_getter;
day_getter.time_since_epoch();