boost microsec_clock和second_clock :: universal_time之间有1秒的差异

时间:2012-05-11 12:11:43

标签: c++ boost

在处理将带有时间戳的传入事件写入文件的模块时,我遇到了一个问题,我无法在www上找到任何信息。希望你们中的一些人可以帮助我:

部分代码:

boost::posix_time::ptime micro_time = boost::posix_time::microsec_clock::local_time();
std::cout << "micro time: " << micro_time  << std::endl;

boost::posix_time::ptime utc_time(boost::posix_time::second_clock::universal_time());
std::cout << "utc time: " << utc_time << std::endl;

它工作得很好,但是两个时间戳之间存在1秒的不匹配。这4个事件紧接着发生,但事件3出现了问题。但就在它之后,一切都很好。

1. event (good):  
micro time: 2012-May-11 13:13:32.002949  
utc time:   2012-May-11 11:13:32.003069

2. event (good):  
micro time: 2012-May-11 13:13:32.003600  
utc time:   2012-May-11 11:13:32.003716  

3. event (bad):   
micro time: 2012-May-11 13:13:32.004241  
utc time:   2012-May-11 11:13:33.004411  

4. event (good again):  
micro time: 2012-May-11 13:13:32.004943  
utc time:   2012-May-11 11:13:32.005073

我正在使用32位Kubuntu并提升库1.46。有没有人对可能导致不匹配的原因有任何想法?

0 个答案:

没有答案