如何使用 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
用于时间)。
谁能帮我使用 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
用于时间)。