c++ - 如何使用 Howardhinnant 的 c++ 日期库格式化 UTC 时间字符串
问题描述
有人可以帮助我使用 Howard Hinnant 出色的日期/时间库来格式化日期字符串。我正在尝试从当前时间输出 UTC 日期。所需的日期/时间格式是祖鲁时间:
“2018-11-01T15:32:56Z”-即“YYYY-MM-DDTHH:MM:SSZ”-
到目前为止,使用霍华德的文档,我能够得到部分结果,如下所示:
const auto today = floor<days>(system_clock::now());
auto dateTimeString = std::format("{}T{:02}:{:02}:{:02}Z", today, 15, 20, 59);
我不得不硬编码 HH MM & SS 字段。我确信有一种简单的方法可以在这个库中格式化自定义日期/时间。任何帮助表示赞赏。
解决方案
如果您使用的是std::format
,那么您使用的是 C++20,而不是Howard Hinnant 的日期/时间库。尽管后者是 C++20 chrono 库的基础。
您的代码应如下所示:
const auto today = floor<seconds>(system_clock::now());
auto dateTimeString = std::format("{:%FT%T}Z", today);
该变量today
包含一个精度为秒的 UTC 时间点。然后{:%FT%T}
格式化它的 YYYY-MM-DDTHH:MM:SS 部分(%F
日期和%T
时间)。
推荐阅读
- wildfly - 消息同时发送两次给 AMQP 消息消费者 (ActiveMQ Artemis)
- unity3d - Unity - 为多个场景创建通用菜单
- javascript - 打开和关闭模态
- angular - Angular 6 SiteMap.xml - 最好的方法是什么
- python - 选择要与对话框一起显示的图像
- php - Laravel 如果选项值 ==
- c - .c 扩展名与 .C 扩展名
- c# - ASP.NET Core MVC 本地化警告:AcceptLanguageHeaderRequestCultureProvider 返回了以下不受支持的文化
- java-8 - 如何在 JPQL 查询中从 LocalDate 获取月份?
- php - Laravel:主动监听来自外部服务的事件