У меня возникли проблемы с преобразованием объекта ptime из boost в строку, которая будет передана функции. Я нашел несколько аналогичных других потоков в отношении вывода объекта времени ускорения в строку (в основном для cout), но ни одно из того, что я нашел на них, не работает.
Похоже, что самый простой способ - вставить объект ptime в строковый поток, а затем использовать строку stringstream. Я также попытался проникнуть в stringstream с помощью time_facet, как показывают некоторые ответы на другие темы. Однако я не могу создать объект time_facet. Это дает мне ошибку, что список аргументов для шаблона класса отсутствует. То, что запутывает, - это нигде в Интернете, я не нашел упоминания о списке аргументов для time_facet, и даже повысить страницу документации показывает, что конструктор по умолчанию для time_facet является просто time_facet().
Ниже приведена простая версия того, что я пробовал:
#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());
Вставка времени в строковый поток дает мне кучу ошибок компиляции в вене
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
]
несмотря на то, что я не использовал никаких объектов time_facet.
Когда я пытаюсь сделать это с помощью объекта time_facet, я добавляю
sstream.imbue(std::locale(sstream.getloc(), new boost::date_time::time_facet("%Y-%m-%d %H:%M:%S")));
прежде чем вставлять время в строковый поток. Ошибки для этого - то, что он хочет список аргументов, упомянутый в начале этого сообщения.
Возможно, есть функция в boost, которая является обратной версией boost:: posix_time:: time_from_string()? Если нет, любая другая помощь будет оценена по достоинству. Спасибо.