【C言語】現在の日時を両方とも取得する方法

この記事では、C言語を使用して現在の日時を取得する方法を学びます。

time.hヘッダーファイルをインクルードし、time関数を使用して現在のUNIX時間を取得します。

さらに、localtime関数を使ってUNIX時間をローカル時間に変換し、strftime関数を使って指定した形式で表示します。

実行結果の例も含めて、具体的な手順を解説します。

目次から探す

現在の日時を取得する方法

time.hヘッダーファイルのインクルード

現在の日時を取得するためには、C言語の標準ライブラリであるtime.hヘッダーファイルをインクルードする必要があります。

time.hヘッダーファイルには、日時に関連する関数や構造体が定義されています。

#include <time.h>

time関数を使用して現在のUNIX時間を取得する

UNIX時間は、1970年1月1日午前0時からの経過秒数を表す整数値です。

time関数を使用すると、現在のUNIX時間を取得することができます。

time_t now;
time(&now);

上記のコードでは、time_t型変数nowを宣言し、time関数を呼び出して現在のUNIX時間を取得しています。

localtime関数を使用してUNIX時間をローカル時間に変換する

取得したUNIX時間を、人間が理解しやすい形式で表示するためには、UNIX時間をローカル時間に変換する必要があります。

localtime関数を使用すると、UNIX時間をローカル時間に変換することができます。

struct tm *local_time;
local_time = localtime(&now);

上記のコードでは、struct tm型のポインタlocal_timeを宣言し、localtime関数を呼び出してUNIX時間をローカル時間に変換しています。

strftime関数を使用してローカル時間を指定した形式で表示する

ローカル時間を指定した形式で表示するためには、strftime関数を使用します。

strftime関数は、指定したフォーマットに従って、ローカル時間を文字列に変換します。

char buffer[80];
strftime(buffer, sizeof(buffer), "%Y-%m-%d %H:%M:%S", local_time);
printf("現在の日時: %s\n", buffer);

上記のコードでは、char型の配列bufferを宣言し、strftime関数を呼び出してローカル時間を指定した形式で表示しています。

%Y%m%d%H%M%Sは、それぞれ年、月、日、時、分、秒を表すフォーマット指定子です。

実行結果の例

以下は、上記のコードを実行した結果の例です。

現在の日時: 2022-01-01 12:34:56

上記の例では、現在の日時が2022年1月1日午後12時34分56秒であることが表示されています。

実行するたびに結果は異なることに注意してください。

目次から探す