C++標準ライブラリ<ctime>
C++標準ライブラリは豊富な機能を提供しており、そのうち<ctime><ctime>は時刻と日付を処理する標準ライブラリの1つです。現在の時刻・日付を取得し、時刻に関連する計算を実行するための関数群を提供します。
<ctime><ctime>ライブラリは、時刻に関連する関数と型を定義しています。これらの関数と型により、プログラマはプログラム内で時刻を処理できます。内容は以下のとおりです:
time_t:時刻を表す型で、通常は長整数型です。tm:時刻の各部分(年、月、日、時など)を表す構造体です。- 一連の関数。例えば、
time(),localtime(),gmtime(),strftime()などです。
構文
以下は<ctime><ctime>ライブラリでよく使われる関数の基本構文です:
-
現在の時刻を取得する(秒単位、1970年1月1日からの経過時間):
time_t t = time(NULL);
-
将
time_t型の時刻をtm構造体に変換します:struct tm *tm = localtime(&t);
-
将
time_t型の時刻を協定世界時(UTC)のtm構造体に変換します:struct tm *tm_utc = gmtime(&t);
-
時刻をフォーマットする:
char buffer[80]; strftime(buffer, 80, "%Y-%m-%d %H:%M:%S", tm);
例
以下は、<ctime><ctime>ライブラリを使用した簡単な例で、現在の時刻を取得してフォーマット出力する方法を示します。
例
#include <iostream>
#include <ctime>
#include <iomanip>
#include <sstream>
int main() {
// 現在の時刻を取得
time_t now = time(NULL);
// 現在の時刻を現地時間に変換
struct tm *local_tm = localtime(&now);
// strftime で時刻をフォーマット
char buffer[80];
strftime(buffer, 80, "%Y-%m-%d %H:%M:%S", local_tm);
// 現在の時刻を出力
std::cout << "Current local time: " << buffer << std::endl;
// 現在の時刻をUTC時間に変換
struct tm *utc_tm = gmtime(&now);
// UTC時間をフォーマット
strftime(buffer, 80, "%Y-%m-%d %H:%M:%S", utc_tm);
// UTC時間を出力
std::cout << "Current UTC time: " << buffer << std::endl;
return 0;
}
#include <ctime>
#include <iomanip>
#include <sstream>
int main() {
// 現在の時刻を取得
time_t now = time(NULL);
// 現在の時刻を現地時間に変換
struct tm *local_tm = localtime(&now);
// strftime で時刻をフォーマット
char buffer[80];
strftime(buffer, 80, "%Y-%m-%d %H:%M:%S", local_tm);
// 現在の時刻を出力
std::cout << "Current local time: " << buffer << std::endl;
// 現在の時刻をUTC時間に変換
struct tm *utc_tm = gmtime(&now);
// UTC時間をフォーマット
strftime(buffer, 80, "%Y-%m-%d %H:%M:%S", utc_tm);
// UTC時間を出力
std::cout << "Current UTC time: " << buffer << std::endl;
return 0;
}
上記のプログラムを実行すると、次のような出力が表示されます(具体的な時刻はプログラムを実行した時間によって異なります):
Current local time: 2023-04-01 12:34:56 Current UTC time: 2023-04-01 12:34:56
時差により、現地時間とUTC時間は同じ場合もあれば、異なる場合もあることに注意してください。
<ctime><ctime>ライブラリは、C++で時刻と日付を処理するための重要なツールです。上記の例を通して、<ctime><ctime>ライブラリを使用して現在の時刻を取得し、フォーマットする方法を確認できます。これは、ログ記録や定期タスクなど、時刻情報を必要とするアプリケーションの開発に非常に役立ちます。この記事が初心者にとって、<ctime>ライブラリをよりよく理解し使用する助けとなることを願っています。<ctime>ライブラリ。