Я закончил преобразование буста ptime
в микросекунды, основанные на эпохе Unix, например:
#define MICROSECONDS_PER_SECOND 1000000
boost::posix_time::ptime unixEpoch(boost::gregorian::date(1970, boost::gregorian::Jan, 1));
boost::posix_time::time_duration deltaTime = timestamp - unixEpoch;
boost::int64_t microsecondsAfterEpoch =
deltaTime.ticks() / (deltaTime.ticks_per_second() / MICROSECONDS_PER_SECOND);
Я мог бы просто использовать deltaTime.ticks()
, но тогда мне также пришлось быдорожка deltaTime.ticks_per_second()
.Для моего случая микросекунды хватило точности.