Estoy convirtiendo un programa existente a C++ y aquí necesito manipular las marcas de tiempo de Sybase. Estas marcas de tiempo contienen información de fecha y hora, que según mi conocimiento se puede manejar mejor con una variable boost::posix_time::ptime
. En algunos lugares del código, necesito obtener el año de la variable.Obtenga el año de boost ptime
Mi pregunta es: ¿cómo puedo extraer más eficientemente la años de una variable de impulso ptime? A continuación se muestra un programa de ejemplo en el que toma tres líneas de código, con la sobrecarga de una variable extra ostringstream
y una variable boost::gregorian::date
.
Según la documentación impulso:
ptime clase depende de
gregorian::date
para la interfaz a la parte fecha de un punto de tiempo
embargo gregorian::date
no parece ser una clase base de ptime
. De alguna manera me falta algo aquí.
¿No hay una forma más fácil de extraer el año del ptime
?
muestra:
#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;
}