68
68
69
69
</ head >
70
70
< body >
71
- < header data-kunai-mdinfo ="{"meta": {"header": ["chrono"], "namespace": ["std"], "id-type": ["function"], "cpp": ["cpp20"]}, "sources": [{"id": "73a24d3b639bed0121d23c9d0716517d63248ba1", "source": "#include <iostream>\n#include <format>\n#include <chrono>\nint main()\n{\n const auto now = std::chrono::system_clock::now();\n std::cout << std::format(\"{:%Y}\", now); // => 2021\n}\n"}], "page_id": ["reference", "chrono", "format"]} ">
71
+ < header data-kunai-mdinfo ="{"meta": {"header": ["chrono"], "namespace": ["std"], "id-type": ["function"], "cpp": ["cpp20"]}, "sources": [{"id": "0f6d19b64fda7ebf3d72861db40f3878f09af47b", "source": "#include <iostream>\n#include <format>\n#include <chrono>\n\nint main()\n{\n auto now = std::chrono::system_clock::now(); // UTC\u6642\u9593\u306e\u73fe\u5728\u65e5\u6642\n\n // \u65e5\u4ed8\u3092\u51fa\u529b\n std::cout << std::format(\"1. {:%Y\u5e74%m\u6708%d\u65e5}\", now) << std::endl;\n\n // \u6642\u9593\u3092\u51fa\u529b\u3002\n // \u79d2\u5358\u4f4d\u306etime_point\u306b\u5909\u63db\u3057\u306a\u3044\u3068\u3001\u5c0f\u6570\u70b9\u4ee5\u4e0b\u306e\u79d2\u3082\u51fa\u529b\u3055\u308c\u308b\n auto now_sec = std::chrono::time_point_cast<std::chrono::seconds>(now);\n std::cout << std::format(\"2. {:%H\u6642%M\u5206%S\u79d2}\", now) << std::endl;\n std::cout << std::format(\"3. {:%H\u6642%M\u5206%S\u79d2}\", now_sec) << std::endl;\n std::cout << std::format(\"4. {:%p %I\u6642%M\u5206%S\u79d2}\", now_sec) << std::endl;\n std::cout << std::format(\"4. {:%p %I\u6642%M\u5206%S\u79d2}\", now_sec) << std::endl;\n\n // \u305d\u306e\u4ed6\u8981\u7d20\n std::cout << std::format(\"6. {:%C}\", now) << std::endl; // \u4e16\u7d00 (100\u3067\u5272\u3063\u3066\u5207\u308a\u4e0b\u3052\u305f\u5024)\n std::cout << std::format(\"7. {:%a}\", now) << std::endl; // \u66dc\u65e5\u306e\u7565\u79f0\n std::cout << std::format(\"8. {:%A}\", now) << std::endl; // \u66dc\u65e5\u306e\u5b8c\u5168\u540d\n}\n"}], "page_id": ["reference", "chrono", "format"]} ">
72
72
< nav class ="navbar navbar-default " role ="navigation ">
73
73
< div class ="container-fluid ">
74
74
< div class ="navbar-header ">
188
188
189
189
< p class ="text-right "> < small >
190
190
最終更新日時(UTC):
191
- < span itemprop ="datePublished " content ="2024-06-11T13:45:38 ">
192
- 2024年06月11日 13時45分38秒
191
+ < span itemprop ="datePublished " content ="2024-09-24T08:40:08 ">
192
+ 2024年09月24日 08時40分08秒
193
193
</ span >
194
194
< br />
195
195
< span itemprop ="author " itemscope itemtype ="http://schema.org/Person ">
@@ -272,12 +272,12 @@ <h3>chronoライブラリでのフォーマットフラグ</h3>
272
272
< tr >
273
273
< td > < code > %c</ code > </ td >
274
274
< td > ロケール依存の日付・時間の表現。改良コマンド< code > %Ec</ code > を指定すると、異なる表現を出力する</ td >
275
- < td > < code > "Fri Apr 24 17:14:44 2020"</ code > < br /> < code > "2020年04月24日 17時14分44秒"</ code > < br /> < code > %Ec </ code > では < code > "令和02年04月24日 17時14分44秒" </ code > < /td >
275
+ < td > < code > "Fri Apr 24 17:14:44 2020"</ code > < br /> < code > "2020年04月24日 17時14分44秒"</ code > </ td >
276
276
</ tr >
277
277
< tr >
278
278
< td > < code > %C</ code > </ td >
279
279
< td > 100で切り下げ除算した年 (世紀)。結果が10進数で1桁の場合、先頭に< code > 0</ code > がつく。改良コマンド< code > %EC</ code > を指定すると、ロケール依存の世紀の異なる表現を出力する</ td >
280
- < td > < code > "21 "</ code > < br /> < code > %EC </ code > では < code > "令和" </ code > (元号 )</ td >
280
+ < td > 2020年では < code > "20 "</ code > )</ td >
281
281
</ tr >
282
282
< tr >
283
283
< td > < code > %d</ code > </ td >
@@ -412,7 +412,7 @@ <h3>chronoライブラリでのフォーマットフラグ</h3>
412
412
< tr >
413
413
< td > < code > %x</ code > </ td >
414
414
< td > ロケール依存の日付表現。改良コマンド< code > %Ex</ code > を指定すると、ロケール依存の異なる表現が出力される</ td >
415
- < td > < code > "04/24/20"</ code > < br /> < code > "2020年04月24日" </ code > < br /> < code > %Ex </ code > では < code > "令和02年04月24日" </ code > < /td >
415
+ < td > < code > "04/24/20"</ code > </ td >
416
416
</ tr >
417
417
< tr >
418
418
< td > < code > %X</ code > </ td >
@@ -427,7 +427,7 @@ <h3>chronoライブラリでのフォーマットフラグ</h3>
427
427
< tr >
428
428
< td > < code > %Y</ code > </ td >
429
429
< td > 10進数での年。結果が4桁未満の場合、4桁になるよう左が< code > 0</ code > で埋められる。改良コマンド< code > %EY</ code > を指定すると、ロケール依存の異なる表現の完全な年を出力する</ td >
430
- < td > < code > "2020"</ code > < br /> < code > %EY </ code > では < code > "令和02年" </ code > < /td >
430
+ < td > < code > "2020"</ code > </ td >
431
431
</ tr >
432
432
< tr >
433
433
< td > < code > %z</ code > </ td >
@@ -450,33 +450,59 @@ <h3>chronoライブラリでのフォーマットフラグ</h3>
450
450
< li > 便宜上のリテラルキャスト< code > STATICALLY-WIDEN</ code > を導入する。< code > STATICALLY-WIDEN<charT>("...")</ code > は、< code > charT</ code > が< code > char</ code > である場合は< code > "..."</ code > 、< code > charT</ code > が< code > wchar_t</ code > である場合は< code > L"..."</ code > を意味する。</ li >
451
451
< li > < code > < a href ="hh_mm_ss.html "> hh_mm_ss</ a > </ code > オブジェクトの< code > < a href ="hh_mm_ss/is_negative.html "> is_negative()</ a > </ code > が< code > true</ code > である場合、出力される文字列の先頭に< code > STATICALLY-WIDEN<charT>("-")</ code > が挿入される</ li >
452
452
</ ul >
453
- < p > < div class ="yata " id ="73a24d3b639bed0121d23c9d0716517d63248ba1 "> < div class ="codehilite "> < pre > < span > </ span > < code > < span class ="cp "> #include</ span > < span class ="cpf "> < a href ="../iostream.html "> <iostream></ a > </ span > < span class ="cp "> </ span >
454
- < span class ="cp "> #include</ span > < span class ="cpf "> < a href ="../format.html "> <format></ a > </ span > < span class ="cp "> </ span >
455
- < span class ="cp "> #include</ span > < span class ="cpf "> < a href ="../chrono.html "> <chrono></ a > </ span > < span class ="cp "> </ span >
456
- < span class ="kt "> int</ span > < span class ="nf "> main</ span > < span class ="p "> ()</ span >
457
- < span class ="p "> {</ span >
458
- < span class ="k "> const</ span > < span class ="k "> auto</ span > < span class ="n "> now</ span > < span class ="o "> =</ span > < span class ="n "> std</ span > < span class ="o "> ::</ span > < span class ="n "> chrono</ span > < span class ="o "> ::</ span > < span class ="n "> system_clock</ span > < span class ="o "> ::</ span > < span class ="n "> now</ span > < span class ="p "> ();</ span >
459
- < span class ="n "> < a href ="../iostream/cout.html "> std::cout</ a > </ span > < span class ="o "> <<</ span > < span class ="n "> std</ span > < span class ="o "> ::</ span > < span class ="n "> format</ span > < span class ="p "> (</ span > < span class ="s "> "{:%Y}"</ span > < span class ="p "> ,</ span > < span class ="n "> now</ span > < span class ="p "> );</ span > < span class ="c1 "> // => 2021</ span >
460
- < span class ="p "> }</ span >
461
- </ code > </ pre > </ div >
462
- </ div > </ p >
463
453
< h2 > 例外</ h2 >
464
454
< ul >
465
455
< li > 指定されたフォーマットフラグに必要な情報が含まれていない場合、< code > < a href ="../format/format_error.html "> format_error</ a > </ code > 例外が送出される (例として、< code > < a href ="duration.html "> duration</ a > </ code > には曜日をフォーマットするために必要な情報が含まれていない)< ul >
466
456
< li > ただし、フラグが時刻に関するもの (< code > %H</ code > , < code > %I</ code > , < code > %p</ code > など) である場合、< code > duration</ code > の特殊化は深夜0時からの経過した時刻として解釈する</ li >
467
457
</ ul >
468
458
</ li >
469
459
</ ul >
460
+ < h2 > 例</ h2 >
461
+ < p > < div class ="yata " id ="0f6d19b64fda7ebf3d72861db40f3878f09af47b "> < div class ="codehilite "> < pre > < span > </ span > < code > < span class ="cp "> #include</ span > < span class ="cpf "> < a href ="../iostream.html "> <iostream></ a > </ span > < span class ="cp "> </ span >
462
+ < span class ="cp "> #include</ span > < span class ="cpf "> < a href ="../format.html "> <format></ a > </ span > < span class ="cp "> </ span >
463
+ < span class ="cp "> #include</ span > < span class ="cpf "> < a href ="../chrono.html "> <chrono></ a > </ span > < span class ="cp "> </ span >
464
+
465
+ < span class ="kt "> int</ span > < span class ="nf "> main</ span > < span class ="p "> ()</ span >
466
+ < span class ="p "> {</ span >
467
+ < span class ="k "> auto</ span > < span class ="n "> now</ span > < span class ="o "> =</ span > < span class ="n "> < a href ="system_clock.html "> std::chrono::system_clock</ a > </ span > < span class ="o "> ::</ span > < span class ="n "> < a href ="system_clock/now.html "> now()</ a > </ span > < span class ="p "> ;</ span > < span class ="c1 "> // UTC時間の現在日時</ span >
468
+
469
+ < span class ="c1 "> // 日付を出力</ span >
470
+ < span class ="n "> < a href ="../iostream/cout.html "> std::cout</ a > </ span > < span class ="o "> <<</ span > < span class ="n "> std</ span > < span class ="o "> ::</ span > < span class ="n "> format</ span > < span class ="p "> (</ span > < span class ="s "> "1. {:%Y年%m月%d日}"</ span > < span class ="p "> ,</ span > < span class ="n "> now</ span > < span class ="p "> )</ span > < span class ="o "> <<</ span > < span class ="n "> < a href ="../ostream/endl.html "> std::endl</ a > </ span > < span class ="p "> ;</ span >
471
+
472
+ < span class ="c1 "> // 時間を出力。</ span >
473
+ < span class ="c1 "> // 秒単位のtime_pointに変換しないと、小数点以下の秒も出力される</ span >
474
+ < span class ="k "> auto</ span > < span class ="n "> now_sec</ span > < span class ="o "> =</ span > < span class ="n "> < a href ="time_point_cast.html "> std::chrono::time_point_cast</ a > </ span > < span class ="o "> <</ span > < span class ="n "> < a href ="duration_aliases.html "> std::chrono::seconds</ a > </ span > < span class ="o "> ></ span > < span class ="p "> (</ span > < span class ="n "> now</ span > < span class ="p "> );</ span >
475
+ < span class ="n "> < a href ="../iostream/cout.html "> std::cout</ a > </ span > < span class ="o "> <<</ span > < span class ="n "> std</ span > < span class ="o "> ::</ span > < span class ="n "> format</ span > < span class ="p "> (</ span > < span class ="s "> "2. {:%H時%M分%S秒}"</ span > < span class ="p "> ,</ span > < span class ="n "> now</ span > < span class ="p "> )</ span > < span class ="o "> <<</ span > < span class ="n "> < a href ="../ostream/endl.html "> std::endl</ a > </ span > < span class ="p "> ;</ span >
476
+ < span class ="n "> < a href ="../iostream/cout.html "> std::cout</ a > </ span > < span class ="o "> <<</ span > < span class ="n "> std</ span > < span class ="o "> ::</ span > < span class ="n "> format</ span > < span class ="p "> (</ span > < span class ="s "> "3. {:%H時%M分%S秒}"</ span > < span class ="p "> ,</ span > < span class ="n "> now_sec</ span > < span class ="p "> )</ span > < span class ="o "> <<</ span > < span class ="n "> < a href ="../ostream/endl.html "> std::endl</ a > </ span > < span class ="p "> ;</ span >
477
+ < span class ="n "> < a href ="../iostream/cout.html "> std::cout</ a > </ span > < span class ="o "> <<</ span > < span class ="n "> std</ span > < span class ="o "> ::</ span > < span class ="n "> format</ span > < span class ="p "> (</ span > < span class ="s "> "4. {:%p %I時%M分%S秒}"</ span > < span class ="p "> ,</ span > < span class ="n "> now_sec</ span > < span class ="p "> )</ span > < span class ="o "> <<</ span > < span class ="n "> < a href ="../ostream/endl.html "> std::endl</ a > </ span > < span class ="p "> ;</ span >
478
+ < span class ="n "> < a href ="../iostream/cout.html "> std::cout</ a > </ span > < span class ="o "> <<</ span > < span class ="n "> std</ span > < span class ="o "> ::</ span > < span class ="n "> format</ span > < span class ="p "> (</ span > < span class ="s "> "4. {:%p %I時%M分%S秒}"</ span > < span class ="p "> ,</ span > < span class ="n "> now_sec</ span > < span class ="p "> )</ span > < span class ="o "> <<</ span > < span class ="n "> < a href ="../ostream/endl.html "> std::endl</ a > </ span > < span class ="p "> ;</ span >
479
+
480
+ < span class ="c1 "> // その他要素</ span >
481
+ < span class ="n "> < a href ="../iostream/cout.html "> std::cout</ a > </ span > < span class ="o "> <<</ span > < span class ="n "> std</ span > < span class ="o "> ::</ span > < span class ="n "> format</ span > < span class ="p "> (</ span > < span class ="s "> "6. {:%C}"</ span > < span class ="p "> ,</ span > < span class ="n "> now</ span > < span class ="p "> )</ span > < span class ="o "> <<</ span > < span class ="n "> < a href ="../ostream/endl.html "> std::endl</ a > </ span > < span class ="p "> ;</ span > < span class ="c1 "> // 世紀 (100で割って切り下げた値)</ span >
482
+ < span class ="n "> < a href ="../iostream/cout.html "> std::cout</ a > </ span > < span class ="o "> <<</ span > < span class ="n "> std</ span > < span class ="o "> ::</ span > < span class ="n "> format</ span > < span class ="p "> (</ span > < span class ="s "> "7. {:%a}"</ span > < span class ="p "> ,</ span > < span class ="n "> now</ span > < span class ="p "> )</ span > < span class ="o "> <<</ span > < span class ="n "> < a href ="../ostream/endl.html "> std::endl</ a > </ span > < span class ="p "> ;</ span > < span class ="c1 "> // 曜日の略称</ span >
483
+ < span class ="n "> < a href ="../iostream/cout.html "> std::cout</ a > </ span > < span class ="o "> <<</ span > < span class ="n "> std</ span > < span class ="o "> ::</ span > < span class ="n "> format</ span > < span class ="p "> (</ span > < span class ="s "> "8. {:%A}"</ span > < span class ="p "> ,</ span > < span class ="n "> now</ span > < span class ="p "> )</ span > < span class ="o "> <<</ span > < span class ="n "> < a href ="../ostream/endl.html "> std::endl</ a > </ span > < span class ="p "> ;</ span > < span class ="c1 "> // 曜日の完全名</ span >
484
+ < span class ="p "> }</ span >
485
+ </ code > </ pre > </ div >
486
+ </ div > </ p >
487
+ < h3 > 出力例</ h3 >
488
+ < p > < pre > < code > 1. 2024年09月24日
489
+ 2. 08時27分28.1822610秒
490
+ 3. 08時27分28秒
491
+ 4. AM 08時27分28秒
492
+ 6. 20
493
+ 7. Tue
494
+ 8. Tuesday
495
+ </ code > </ pre > </ p >
470
496
< h2 > バージョン</ h2 >
471
497
< h3 > 言語</ h3 >
472
498
< ul >
473
499
< li > C++20</ li >
474
500
</ ul >
475
501
< h3 > 処理系</ h3 >
476
502
< ul >
477
- < li > < a href ="../../implementation.html#clang "> Clang</ a > : 9.0 < span aria-label =" 未実装 " role =" img " title =" 未実装 " > ❌ </ span > </ li >
478
- < li > < a href ="../../implementation.html#gcc "> GCC</ a > : 9.2 < span aria-label ="未実装 " role ="img " title ="未実装 " > ❌ </ span > </ li >
479
- < li > < a href ="../../implementation.html#visual_cpp "> Visual C++</ a > : 2019 Update 3 < span aria-label ="未実装 " role ="img " title ="未実装 " > ❌ </ span > </ li >
503
+ < li > < a href ="../../implementation.html#clang "> Clang</ a > : 17 [mark mark verified] </ li >
504
+ < li > < a href ="../../implementation.html#gcc "> GCC</ a > : 13 < span aria-label ="検証済 " role ="img " title ="検証済 " > ✅ </ span > </ li >
505
+ < li > < a href ="../../implementation.html#visual_cpp "> Visual C++</ a > : 2019 Update 10 < span aria-label ="検証済 " role ="img " title ="検証済 " > ✅ </ span > </ li >
480
506
</ ul >
481
507
< h2 > 参照</ h2 >
482
508
< ul >
0 commit comments