如何使用 boost 实现这种特定的日期时间格式?
我想格式化这样的日期时间:
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-Feb-16 16:51:16"
%Y%m%d : "2011-Feb-16"
%H%M%S : "16:51:16"
这是另一个一:
%Y :“2011 年 2 月 16 日 16:51:16”嗯??
I want to format a datetime like this:
YYYYMMDD_HHMMSS
eg, 4 digit year, followed by 2 digit months, followed by 2 digit day, underscore, 24-hour hour, 2 digit minutes, 2 digit seconds.
e.g.: 16th of February 2011, 8:05 am and 2 seconds would be:
20110216_080502
What format string should I use in the following code to achieve this? (And, if necessary, what code changes are needed):
//...#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();
Here are some strings I've tried so far:
%Y%m%d_%H%M%S : "2011-Feb-16 16:51:16"
%Y%m%d : "2011-Feb-16"
%H%M%S : "16:51:16"
Here's another one:
%Y : "2011-Feb-16 16:51:16" huh??
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
我相信您需要使用
wtime_facet
,而不是time_facet
。请参阅我发布的工作程序关于你的另一个问题。I believe you need to use
wtime_facet
, nottime_facet
. See the working program I posted on your other question.来自日期/时间分面格式标志:
From date/time facet format flags: