有一种简单的方法可以在C中获得缩放的unix时间戳

我正在将一些
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指定的.

点赞