C言語学習ポータル(無料版) 学習コンテンツ 関数リファレンス mktime

🔧 時間 ・ time.h ・ C89

mktime の使い方

C言語 標準ライブラリ関数リファレンス(無料公開)

書式

time_t mktime(struct tm *tm);

どんな関数か

struct tm(年月日時分秒に分解されたローカル時刻)をtime_t型のカレンダー時刻へ変換する。範囲外の値(例:13月)は自動的に繰り上げ正規化されるという特徴がある。 ローカルタイムゾーンを前提とした変換のため、UTCで扱いたい場合は別途タイムゾーンの補正が必要。

使用例

#include <time.h>
#include <stdio.h>
int main(void) {
    struct tm t = {0};
    t.tm_year = 126;
    t.tm_mon = 6;
    t.tm_mday = 29;
    time_t tt = mktime(&t);
    printf("%ld\n", (long)tt);
    return 0;
}

つまずきやすい注意点

⚠️ tm_yearは1900年からのオフセット、tm_monは0始まり(0=1月)であり、そのまま西暦や月番号を代入すると値がずれる典型的なミスがある。

アプリの関数リファレンスで引く(無料・登録不要) 関数一覧へ

mktime と一緒に使う関数

localtimetime_t型のカレンダー時刻を、実行環境のタイムゾーンに基づいたstruct tm(年月日時分秒)へ分解する。戻り値は… time現在のカレンダー時刻をtime_t型(多くの処理系で1970年1月1日からの経過秒数)で取得する。引数にポインタを渡すと…

同じ分類(時間)の関数

clock difftime localtime time timespec_get

もっと先へ:ポインタ・メモリ・ファイル入出力・セキュアコーディングを含む全26トラックと、段位検定・模試のフルセットは完全版に収録しています。

完全版(BOOTH)を見る