我正在将一些
PHP移植到C语言.我们的一些数据库代码将时间值存储为unix时间戳* 100
php包含看起来有点像这样的代码.
//PHP
static function getTickTime()
{
return round(microtime(true)*100);
}
我需要这样的东西:
//C++
uint64_t getTickTime()
{
ptime Jan1st1970(date(1970, 1, 1));
ptime Now = microsecond_clock::local_time();
time_duration diff = Now - Jan1st1970;
return static_cast<uint64_t>(diff.total_seconds()*100);
}
这样的事情是否明智?有更整洁的解决方案吗?
这段代码中有什么令人讨厌的东西我看不到吗? (猜猜我对boost :: date_time的经验不足以了解这些事情)
最佳答案 最新且最便携的解决方案是使用在< ctime>中定义的time()函数,该函数返回自Unix纪元以来的秒数.
如果你使用boost,你需要universal_time(),而不是local_time(),因为epoch是用UTC指定的.