【C言語】現在時刻を取得する方法【Windows/UNIX】

この記事では、Windows環境とUNIX環境での現在時刻の取得方法について解説します。

システム時刻の取得やローカル時刻の取得、さらにはUTC時刻の取得方法まで、具体的なコード例を交えて分かりやすく説明します。

C言語初心者の方でも、簡単に現在時刻を取得する方法を学ぶことができます。

目次から探す

Windows環境での現在時刻の取得方法

Windows環境で現在の時刻を取得する方法には、システム時刻の取得とローカル時刻の取得の2つの方法があります。

システム時刻の取得

システム時刻とは、コンピュータの内部時計が保持している時刻のことです。

C言語では、システム時刻を取得するためにtime関数を使用します。

#include <stdio.h>
#include <time.h>
int main() {
    time_t t;
    time(&t);
    printf("システム時刻: %s", ctime(&t));
    return 0;
}

上記のコードでは、time関数を使用してシステム時刻を取得し、ctime関数を使用して時刻を文字列として表示しています。

実行すると、現在のシステム時刻が表示されます。

ローカル時刻の取得

ローカル時刻とは、現地の標準時刻を指すもので、タイムゾーンの影響を受けます。

C言語では、ローカル時刻を取得するためにlocaltime関数を使用します。

#include <stdio.h>
#include <time.h>
int main() {
    time_t t;
    struct tm *local;
    t = time(NULL);
    local = localtime(&t);
    printf("ローカル時刻: %02d:%02d:%02d\n", local->tm_hour, local->tm_min, local->tm_sec);
    return 0;
}

上記のコードでは、time関数を使用してシステム時刻を取得し、localtime関数を使用してローカル時刻に変換しています。

変換後のローカル時刻の各要素(時、分、秒)を取得し、表示しています。

実行すると、現在のローカル時刻が表示されます。

以上が、Windows環境での現在時刻の取得方法です。

システム時刻とローカル時刻の取得方法を使い分けて、必要な時刻情報を取得してください。

UNIX環境での現在時刻の取得方法

UNIX環境では、C言語を使用して現在時刻を取得する方法がいくつかあります。

ここでは、システム時刻の取得とUTC時刻の取得について説明します。

システム時刻の取得

UNIX環境では、time()関数を使用してシステム時刻を取得することができます。

この関数は、1970年1月1日午前0時からの経過秒数を返します。

以下に、time()関数を使用してシステム時刻を取得するサンプルコードを示します。

#include <stdio.h>
#include <time.h>
int main() {
    time_t currentTime;
    time(¤tTime);
    printf("システム時刻: %ld\n", currentTime);
    return 0;
}

上記のコードでは、time_t型変数currentTimeを宣言し、time()関数を呼び出してその値を取得しています。

そして、printf()関数を使用してシステム時刻を表示しています。

実行結果は以下のようになります。

システム時刻: 1631234567

UTC時刻の取得

UNIX環境では、time()関数を使用して取得したシステム時刻をもとに、UTC時刻を取得することもできます。

UTC時刻は、協定世界時(Coordinated Universal Time)とも呼ばれ、世界中で共通の基準となる時刻です。

以下に、time()関数を使用してUTC時刻を取得するサンプルコードを示します。

#include <stdio.h>
#include <time.h>
int main() {
    time_t currentTime;
    struct tm *utcTime;
    time(¤tTime);
    utcTime = gmtime(¤tTime);
    printf("UTC時刻: %d/%d/%d %02d:%02d:%02d\n",
           utcTime->tm_year + 1900, utcTime->tm_mon + 1, utcTime->tm_mday,
           utcTime->tm_hour, utcTime->tm_min, utcTime->tm_sec);
    return 0;
}

上記のコードでは、time_t型変数currentTimestruct tm型ポインタ変数utcTimeを宣言し、time()関数を呼び出してシステム時刻を取得します。

そして、gmtime()関数を使用してシステム時刻をUTC時刻に変換します。

最後に、printf()関数を使用してUTC時刻を表示しています。

実行結果は以下のようになります。

UTC時刻: 2021/09/10 12:34:56

以上が、UNIX環境での現在時刻の取得方法についての説明です。

システム時刻の取得とUTC時刻の取得について、それぞれの方法を紹介しました。

これらの方法を活用して、C言語で現在時刻を取得することができます。

目次から探す