CでUNIX時間を取得・変換
Cで現在のエポック値を取得し、UNIX秒とUTCの日時を相互変換するコードをコピーできます。
現在のタイムスタンプを取得
#define _DEFAULT_SOURCE
#include <stdio.h>
#include <time.h>
int main(void) {
printf("%lld\n", (long long)time(NULL));
}タイムスタンプを日時に
#define _DEFAULT_SOURCE
#include <stdio.h>
#include <time.h>
int main(void) {
time_t seconds = 1700000000;
char text[32];
strftime(text, sizeof text, "%Y-%m-%dT%H:%M:%SZ", gmtime(&seconds));
puts(text);
}日時をタイムスタンプに
#define _DEFAULT_SOURCE
#include <stdio.h>
#include <time.h>
int main(void) {
struct tm utc = { .tm_year = 2023 - 1900, .tm_mon = 11 - 1,
.tm_mday = 14, .tm_hour = 22, .tm_min = 13, .tm_sec = 20 };
printf("%lld\n", (long long)timegm(&utc));
}現在のUNIX時間
秒—
ミリ秒—
- UTC
- —
- 自分のタイムゾーン
- —
無料で使えます。入力内容はこのブラウザ内で処理されます。
使い方
- 最初の例をCの環境で実行し、現在のUNIX秒を取得します。
- 2つ目の例で1700000000をUTCの日時に変換します。
- 最後の例でその日時を再びUNIX秒に戻します。
POSIXのtime_tは秒を表します。gmtime()はUTCへ変換し、macOSやglibcのtimegm()はその逆です。32ビットのtime_tには2038年の上限があります。