この投稿では、C++で現在の時刻と日付を取得する方法について説明します。

1.使用する std::chrono

C++ 11以降、C++で現在の時刻と日付を取得するための標準的なソリューションは、クロノライブラリを使用することです。で現在の時刻を取得できます std::chrono::system_clock::now() から <chrono.h> ヘッダー、およびそれをに変換します std::time_t タイプ(エポックからの時間)。次に、変換します std::time_t ローカルカレンダー時間に std::ctimeWww Mmm dd hh:mm:ss yyyy 以下に示すフォーマット:

ダウンロード  コードを実行する

出力(変化します):

Current Time and Date: Tue Feb 08 18:40:13 2018

 
C++で経過時間を測定する必要がある場合は、次のようにします。

ダウンロード  コードを実行する

出力(変化します):

Elapsed Time: 0.060156 sec

 
C++ 20以降、 std::chrono::zoned_time タイムゾーンで日付と時刻を表すため。

コードをダウンロード

2.使用する std::time

アイデアは、エポックから経過した秒数を次のように取得することです。 std::time_t 値を入力し、それをに変換します std::tm とのインスタンス std::localtime。アン std::tm オブジェクトは、そのコンポーネント(秒、分、時間、日、月、年など)に分割されたカレンダーの日付と時刻を保持します。

次のコード例は、その使用法を示しています。このソリューションには <ctime> ヘッダ。

ダウンロード  コードを実行する

出力(変化します):

Current Date: 8/2/2018

 
からの日付と時刻の情報をさらに変換できます std::tm を使用して指定されたフォーマット文字列に従って、nullで終了するマルチバイト文字へのオブジェクト strftime() 関数。たとえば、次のコードは現在の日付と時刻を次のように返します。 std::string フォーマットで MM-DD-YYYY HH:mm:ss.

ダウンロード  コードを実行する

出力(変化します):

Current Time and Date: 02-08-2018 18:42:41

3.使用する Boost.Date_Time

別のオプションは、 日時関数 Boostライブラリによって提供されます。 Boostライブラリで利用できる時間システムはいくつかあります。次のソリューションは boost::posix_time::microsec_clock::universal_time ヘッダーから <boost/date_time/posix_time/posix_time> –UTCで時刻を返します。

コードをダウンロード

出力(変化します):

Current Time and Date: 2018-Feb-08 18:42:41.804879

これで、C++で現在の時刻と日付を取得できます。