Je convertis un programme existant en C++ et j'ai besoin ici de manipuler les horodatages Sybase. Ces horodatages contiennent des informations sur la date et l'heure qui, à ma connaissance, peuvent être traitées par une variable boost::posix_time::ptime
. Dans quelques endroits du code, j'ai besoin de l'année de la variable.Obtenir l'année à partir de boost ptime
Ma question est: comment puis-je plus efficacement extraire la année d'une variable ptime boost? Voici un exemple de programme dans lequel il faut trois lignes de code, avec la surcharge d'une variable supplémentaire ostringstream
et une variable boost::gregorian::date
.
Selon boost documentation:
classe ptime dépend de
gregorian::date
pour l'interface à la partie date d'un point de temps
cependant gregorian::date
ne semble pas être une classe de base de ptime
. Quelque part, il me manque quelque chose ici.
Y a-t-il un moyen plus simple d'extraire l'année du ptime
?
Exemple:
#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;
}