コンテンツにスキップ

C++/標準ライブラリ/時間ライブラリ

出典: フリー教科書『ウィキブックス(Wikibooks)』

C++の時間ライブラリについて[編集]

C++の時間ライブラリは、主に以下の2つで構成されており、プログラム内で日付時刻を扱ったり、処理にかかった時間を計測したりすることができます。

  1. chrono ライブラリ (ヘッダー <chrono>) : C++11で導入されたライブラリで、高精度な時間計測とカレンダー時間との変換機能を提供します。
  2. Cライブラリ時間関数 (ヘッダー <ctime>) : C言語からの伝統的な時間取得・操作関数を提供します。

chrono ライブラリ は、より新しく、可読性が高く、推奨されるライブラリです。以下の機能を提供します。

  • 高精度時間計測: ナノ秒 (ns) レベルの高精度で現在時刻や経過時間を取得できます。
  • カレンダー時間との変換: 現在時刻をカレンダー (年、月、日、時、分、秒) として取得したり、カレンダー時間を時刻に変換できます。
  • タイムゾーンへの対応: タイムゾーン情報は扱いませんが、タイムゾーンの影響を受けない時刻取得が可能です。

Cライブラリ時間関数 は、C言語からの互換性のために存在するライブラリで、以下の機能を提供します。

  • 現在時刻の取得: 現在時刻をカレンダー時間 (秒単位) で取得できます。
  • 時刻のフォーマット: 時刻を文字列に変換できます。(可読性が低く、推奨されません)
  • 文字列からの時刻変換: 文字列を時刻に変換できます。(信頼性が低く、推奨されません)

C++の時間ライブラリを選択する際は、以下の点に注意しましょう。

  • 高精度な時間計測が必要なら chrono ライブラリが適しています。
  • C言語との互換性が必要なら Cライブラリ時間関数も利用できますが、chrono ライブラリが推奨されます。

ヘッダー一覧[編集]

この章で扱うヘッダーは以下の通りです。

時間に関連するトレイト
<chrono>
Cライブラリの時間ユーティリティ
<ctime>

C++17のClockの要件[編集]

時間に関連するトレイト[編集]

クラステンプレート[編集]

クラステンプレート[編集]

Clocks[編集]

シビルカレンダー[編集]

クラステンプレート[編集]

12/24時間制[編集]

タイムゾーン[編集]

フォーマット[編集]

パース[編集]

Cライブラリの時間ユーティリティ[編集]