簡體   English   中英

fmt 庫是否處理打印 std::chrono::time_point?

[英]Does fmt library handle printing std::chrono::time_point?

C++ fmt 庫的文檔說,關於“計時格式說明符”:

具有日歷組件的說明符,例如 'd'(月份中的日期)僅對 std::tm 有效,而對持續時間或時間點無效。

但是,我可以創建std::chrono::time_point並使用 %d 和其他字母打印它。

using std::chrono::system_clock;
using std::chrono::time_point;

time_point<system_clock> t = system_clock::now();
fmt::print("{:%Y-%m-%d %H:%M:%S}", t);
// Prints: 2022-09-08 21:27:08

也許我不理解文檔; 我不能 100% 確定某些術語的含義,例如“日歷組件”。

我只想以ISO 8601 格式( YYYY-mm-ddTHH:MM:SSZ ) 打印一個時間點,由於某種原因,這似乎與chrono類型一起在標准庫中不可用。

是否支持打印time_point (就像我上面所做的那樣)?

這部分文檔有點過時了。 對於 {fmt} 的最新版本,您可以將d和類似的格式說明符與time_point一起使用,例如

#include <fmt/chrono.h>

int main() {
  using std::chrono::system_clock;
  using std::chrono::time_point;
  time_point<system_clock> t = system_clock::now();
  fmt::print("{:%Y-%m-%d %H:%M:%S}", t);
}

神螺栓

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM