本地时间(带毫秒)

14

我该如何使用Boost库获取当前时间?我可以这样做:

ptime now = boost::posix_timesecond_clock::local_time();
tm d_tm = to_tm(now);

但是tm结构体的最后一个时间单位是秒,而我需要毫秒。我可以获取带有毫秒的当前时间吗?


你需要精确到1毫秒吗?因为许多计算机根本没有那么准确的时钟。NTP只能提供约10毫秒的精度。 - MSalters
1
此外,不要指望这在Windows上像您想象的那样工作。Windows的调度程序只运行每15毫秒一次,因此如果您经常检查它,时间会似乎冻结15毫秒,然后向前跳转。 - teeks99
2个回答

阿里云服务器只需要99元/年,新老用户同享,点击查看详情
19

请查看boost::posix_time::microsec_clock::local_time()

#include <boost/date_time/posix_time/posix_time_types.hpp>

#include <iostream>

int
main()
{
    boost::posix_time::ptime time = boost::posix_time::microsec_clock::local_time();
    boost::posix_time::time_duration duration( time.time_of_day() );
    std::cout << duration.total_milliseconds() << std::endl;

    return 0;
}

@Ockonal 我已经更新了我的示例,展示了如何提取毫秒。 - Sam Miller

0

我认为代码应该是:

 ptime now = boost::posix_time::second_clock::local_time();

我觉得你在代码中忘记了"::"。^_^


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,