我想格式化这样的日期时间:
YYYYMMDD_HHMMSS
例如,4位数年份,然后是2位数月,接着是2位数日,下划线,24小时制,2位数分钟,2位数秒。
例如:2011年2月16日,上午8:05和2秒:20110216_080502
我应该在以下代码中使用什么格式字符串来实现此目的? (并且,如有必要,需要更改代码):
//...#includes, namespace usings...
ptime now = second_clock::universal_time();
wstringstream ss;
time_facet *facet = new time_facet("???"); //what goes here?
ss.imbue(locale(cout.getloc(), facet));
ss << now;
wstring datetimestring = ss.str();
以下是我到目前为止尝试过的一些字符串:
%Y%m%d_%H%M%S :“2011年2月16日16:51:16”
%Y%m%d :“2011年2月16日”
%H%M%S :“16:51:16”
这是另一个:
%Y :“2011年2月16日16:51:16”呵呵
答案 0 :(得分:3)
我认为您需要使用wtime_facet
,而不是time_facet
。请参阅我在其他问题上发布的working program。
答案 1 :(得分:1)
来自date/time facet format flags:
"%Y%m%d_%H%M%S"
答案 2 :(得分:1)
time_facet *facet = new time_facet("%Y%m%d_%H%M%S");