如何使用Boost库以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
Run Code Online (Sandbox Code Playgroud)
但我想要:
2009年12月14日23:31:40
Tod*_*lin 80
如果您正在使用Boost.Date_Time,则使用IO方面完成此操作.
您需要包括boost/date_time/posix_time/posix_time_io.hpp以获得正确的面类型定义(wtime_facet,time_facet,等)boost::posix_time::ptime.完成后,代码非常简单.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;
}
Run Code Online (Sandbox Code Playgroud)
输出:
14-Dec-2009 16:13:14
Run Code Online (Sandbox Code Playgroud)
另请参阅boost文档中的格式标志列表,以防您想要输出更高级的内容.