c++ - 使用 chrono 获取当前日期

标签 c++ c++11 c++-chrono

C++11 提供了返回当前时间的函数。但是,我找不到返回当前日期的函数。我使用 boost 来这样做。

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

有什么方法可以使用 chrono 实现相同的结果吗?

编辑:我想要的是使用 time_point 来表示当天。即时分秒为零 2013-07-31 00:00:00

最佳答案

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();

关于c++ - 使用 chrono 获取当前日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17961313/

相关文章:

c++ - 我可以将 `std::this_thread::sleep_for()` 用于 MPI 进程吗?

c++ - 如何正确地将 boost::optional<std::chrono::duration> 作为函数参数?

c++ - 两台机器之间时间戳的最佳 C++ 计时函数是什么

c++ - 为什么 std::chrono::system_clock::to_time_t() 不是 constexpr?

c++ - 关闭套接字而不等待发送成功 - Winsock2 非阻塞 TCP 套接字

c++ - 如何从封闭的模板类访问嵌套类的方法和字段?

c++ - 比较位集的最快方法(<位集上的运算符)?

c++ - 从全局命名空间引用某些东西?

c++ - 如何在 lambda 表达式中传递变量?

c++ - 当使用模板支持仿函数作为参数时,我应该使用什么限定符?