Как получить секунды от boost :: posix_time :: ptime - PullRequest
0 голосов
/ 13 июня 2018

Прежде всего: я новичок в Boost и немного новичок в C ++.Я работаю с функцией, где я получаю следующее boost::posix_time::ptime time, переданное в качестве аргумента, и я хочу извлечь из этого времени POSIX aka «секунд с начала эпохи» как long.Как мне это сделать?

1 Ответ

0 голосов
/ 13 июня 2018

Вы можете преобразовать ptime в std::tm и преобразовать его в time_t, используя mktime():

#include <ctime>
#include <boost/date_time/posix_time/posix_time.hpp>

boost::posix_time::ptime time;
std::tm time_tm = to_tm(time);
time_t posix_time = mktime(&time_tm);

как rafix07 указал, есть также to_time_t() в boost/date_time/posix_time/conversion.hpp, который выполняет это преобразование напрямую.Я не нашел документации об этом, но я проверил исходный код, и он существует по крайней мере в Boost 1.66.

...