Я конвертирую существующую программу в C++, и здесь мне нужно манипулировать временными метками Sybase. Эти метки времени содержат информацию о дате и времени, которую, насколько мне известно, лучше всего обрабатывать с помощью переменной boost::posix_time::ptime
. В нескольких местах кода мне нужно получить год из переменной.
У меня вопрос: как наиболее эффективно извлечь год из переменной 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;
}