转换时间戳(以毫秒为单位)以提升ptime

时间:2012-05-24 12:27:49

标签: c++ datetime boost

我需要将自纪元以来以毫秒为单位的时间转换为boost::posix_time::ptime。我看到的唯一功能是转换为from_time_t,但这只是在几秒钟内就会失去毫秒。

如何将epoch之后的毫秒转换为ptime类型?

2 个答案:

答案 0 :(得分:13)

其中ms是自纪元以来的毫秒数:

ptime epoch_milliseconds_to_ptime(unsigned long int ms)
{
  static const ptime epoch(date(1970, 1, 1));

  return epoch + milliseconds(ms);
}

答案 1 :(得分:5)

from_time_t(millis / 1000) + millisec(millis % 1000)