如何使用 boost 实现这种特定的日期时间格式?

发布于 2024-10-18 02:57:58 字数 840 浏览 6 评论 0原文

我想格式化这样的日期时间:

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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

音盲 2024-10-25 02:57:58

我相信您需要使用 wtime_facet,而不是 time_facet。请参阅我发布的工作程序关于你的另一个问题。

I believe you need to use wtime_facet, not time_facet. See the working program I posted on your other question.

亚希 2024-10-25 02:57:58
  time_facet *facet = new time_facet("%Y%m%d_%H%M%S");
  time_facet *facet = new time_facet("%Y%m%d_%H%M%S");
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文