如何使用格式dd / mm / yyyy格式化date时间对象?
如何使用Boost库打印当前date,格式为dd / mm / yyyy H?
我拥有的:
boost::posix_time::ptime now = boost::posix_time::second_clock::local_time(); cout << boost::posix_time::to_simple_string(now).c_str(); 2009-Dec-14 23:31:40
但我想要:
14-Dec-2009 23:31:40
如果您使用Boost.Date_Time ,则使用IO构面完成此操作。
您需要包含boost/date_time/posix_time/posix_time_io.hpp
以获取boost::posix_time::ptime
的正确方面wtime_facet
( wtime_facet
, time_facet
等)。 一旦完成,代码非常简单。 你在你想输出的ostream
上调用imbue,然后输出你的ptime
:
#include <iostream> #include <boost/date_time/posix_time/posix_time.hpp> #include <boost/date_time/posix_time/posix_time_io.hpp> using namespace boost::posix_time; using namespace std; int main(int argc, char **argv) { time_facet *facet = new time_facet("%d-%b-%Y %H:%M:%S"); cout.imbue(locale(cout.getloc(), facet)); cout << second_clock::local_time() << endl; }
输出:
14-Dec-2009 16:13:14
请参阅boost文档中的格式标志列表 ,以防万一您想要输出一些更好的东西。