Comment convertir un boost :: ptime en chaîne

Je vais avoir du mal à convertir un ptime objet de stimuler en une chaîne de caractères à être passé à une fonction. J'ai trouvé plusieurs autres threads en ce qui concerne outputing un coup de pouce moment s'opposer à une chaîne (surtout pour le cout) mais rien de ce que j'ai trouvé sur leur travail.

Il semble que le plus simple est d'insérer le ptime objet dans un stringstream, puis en utilisant les stringstream de la chaîne. J'ai également tenté d'insuffler à la stringstream avec un time_facet, que certaines des réponses sur d'autres threads suggèrent. Cependant, je suis incapable de créer un time_facet objet. Il me donne l'erreur que l'argument de la liste pour le modèle de classe est manquant. Ce qui est déroutant, c'est le nulle part sur internet je n'ai trouvé aucune mention d'une liste d'arguments pour time_facet, et même stimuler la page de documentation montre que le constructeur par défaut pour un time_facet est simplement time_facet().

Ci-dessous est une version simple de ce que j'ai essayé:

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

boost::posix_time::ptime time = boost::posix_time::time_from_string("1981-08-20 08:05:00"); 
std::stringstream sstream;
sstream << time;
_updateStatement->setString(1, (sql::SQLString)sstream.str());

L'insertion de temps dans les stringstream me donne un tas d'erreurs de compilation dans la veine de

error C2220: warning treated as error - no 'object' file generated C:\code\trunk\Development\External\boost\include\boost/date_time/time_facet.hpp(247) :while compiling class template member function 'boost::date_time::time_facet<time_type,CharT>::time_facet(size_t)'
          with
          [
              time_type=boost::posix_time::ptime,
              CharT=char
          ]

malgré le fait que je n'ai pas utilisé tout time_facet objets.

Quand j'essaie de le faire avec un time_facet objet, je l'ai ajouter dans

sstream.imbue(std::locale(sstream.getloc(), new boost::date_time::time_facet("%Y-%m-%d %H:%M:%S")));

avant de l'insérer à la fois dans les stringstream. L'erreur sur ce qu'il veut d'une liste d'arguments comme déjà mentionné au début de ce post.

Est là peut-être une fonction boost qui est l'inverse de boost::posix_time::time_from_string()? Si pas, de toute autre aide serait appréciée. Merci.

source d'informationauteur user3517209