你好我试图在UTC中使用提升以来的时间过去但似乎是microsec_clock :: universal_time();没有返回UTC时间,而是返回PC时区的时间。
如何使用boost获取UTC的当前时间(以毫秒为单位)?
以下是我使用
的代码const long long unix_timestmap_now()
{
ptime time_t_epoch(date(1970, 1, 1));
ptime now = microsec_clock::universal_time();
time_duration diff = now - time_t_epoch;
return diff.total_milliseconds();;
}
答案 0 :(得分:2)
为什么要使用提升?所有需要的(指的是时间)都转移到了C ++中的STL。
重要的是 - 不是每个人都知道“unix时间戳”一次对整个世界都是一样的,即如果在俄罗斯的服务器上检查时间,例如在美国的服务器上,则值将是是相同的(当然在两个服务器正确的时间正确的情况下),它的变化只是在形式的人可以理解的变化,取决于服务器设置。当然,如果你没有设定时区,反向priobrazovanie也会有所不同。
上进行测试#include <iostream>
#include <chrono>
int main ()
{
using namespace std::chrono;
system_clock::time_point tp = system_clock::now();
system_clock::duration dtn = tp.time_since_epoch();
std::cout << "current time since epoch, expressed in:" << std::endl;
std::cout << "milliseconds: " << duration_cast<milliseconds>(dtn).count();
std::cout << std::endl;
return 0;
}