[英]How print current time in C++11?
在C ++ 11中是否有一種簡單的方法可以使用與正在使用的ostream相關聯的語言環境的相應格式規則來打印當前的掛起時間?
我真正想做的是這樣的事情:
myStream << std::chrono::system_clock::now();
並根據與myStream
關聯的任何語言環境打印日期和時間。 C ++ 11提供put_time
,但它需要格式化字符串,我希望格式由與流關聯的語言環境確定。 還有time_put
和time_put_byname
,但根據cppreference.com上的示例,這些函數與put_time
一起使用。
沒有簡單的方法來打印時間點值而不手動格式化它?
您可以將put_time
與格式字符串一起使用,例如"%c"
。 %c
是區域設置的標准日期和時間字符串的格式說明符。 結果看起來像我的機器上的“Tue Jul 23 19:32:18 CEST 2013”(POSIX en_US locale,在德國時區)。
auto now = std::chrono::system_clock::now();
auto now_c = std::chrono::system_clock::to_time_t(now);
std::cout << std::put_time(std::localtime(&now_c), "%c") << '\n';
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.