Я конвертирую существующую программу в C ++, и здесь нужно манипулировать временными метками Sybase. Эти метки времени содержат информацию о дате и времени, которая, насколько мне известно, лучше всего обрабатывается переменной boost::posix_time::ptime
. В некоторых местах кода мне нужно получить год из переменной.
Мой вопрос: как мне наиболее эффективно извлечь year из переменной boost ptime? Ниже приведен пример программы, в которой требуется три строки кода с дополнительными издержками на ostringstream
переменную и boost::gregorian::date
переменную
В соответствии с документацией повышения:
Класс ptime зависит от gregorian::date
для интерфейса с
часть даты в момент времени
однако gregorian::date
не является базовым классом ptime
. Я как-то здесь что-то упускаю.
Нет ли более простого способа извлечь год из ptime
?
Пример:
#include <boost/date_time/local_time/local_time.hpp>
#include <iostream>
int main()
{
boost::posix_time::ptime t(boost::posix_time::second_clock::local_time());
boost::gregorian::date d = t.date();
std::ostringstream os; os << d.year();
std::cout << os.str() << std::endl;
return 0;
}