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

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ライブラリの時間ユーティリティ

編集