如何使用 howardhinnant 的 C++ 日期库格式化 UTC 时间字符串

how to format a UTC time string using howardhinnant's c++ date library

谁能帮我使用 Howard Hinnant 的优秀 date/time library 格式化日期字符串。我正在尝试从当前时间输出 UTC 日期。 date/time 的所需格式是每个祖鲁时间:

“2018-11-01T15:32:56Z”-即“YYYY-MM-DDTHH:MM:SSZ”-

到目前为止,使用 Howard 的 documentation 我能够得到如下的部分结果:

const auto today = floor<days>(system_clock::now());
auto dateTimeString = std::format("{}T{:02}:{:02}:{:02}Z", today, 15, 20, 59);

我不得不对 HH MM 和 SS 字段进行硬编码。我确信有一种简单的方法可以在此库中格式化自定义 date/time。任何帮助表示赞赏。

如果您使用 std::format,那么您使用的是 C++20,而不是 Howard Hinnant's date/time library。尽管后者是 C++20 计时库的基础。

您的代码应如下所示:

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 用于时间)。