MCPで接続 →

計算を入力してください

公式

広告

結果

UTC Date & Time
2023-11-14 22:13:20
UTC(協定世界時)
22
13
20
曜日(0=日曜) 2
1970-01-01 からの経過日数 19,675

Unixタイムスタンプ変換ツールとは?

Unixタイムスタンプ(エポック時間とも呼ばれます)とは、1970年1月1日 00:00:00 UTC からの経過秒数を表す整数値です(うるう秒は含みません)。このツールは、その1つの整数を人が読める形のUTCカレンダー日付・時刻へ変換し、曜日まで表示します。

1970年のエポックから後の日付までの秒数を数える数直線
Unixタイムスタンプは、エポック(1970年1月1日午前0時UTC)からの経過秒数を数えます。

使い方

秒単位のUnixタイムスタンプ(例:1700000000)を貼り付けるか入力して送信するだけ。UTCでの年・月・日・時・分・秒に加え、曜日と、エポックからの経過日数(生の値)も合わせて返します。

計算式のしくみ

まず秒数を分解します。\(\text{Days} = \left\lfloor \text{ts} / 86400 \right\rfloor\) で日数を求め、その余りがその日の時刻になります。

$$\begin{gathered} \text{Days} = \left\lfloor \frac{\text{Timestamp}}{86400} \right\rfloor, \qquad s = \text{Timestamp} \bmod 86400 \\[1.5em] \text{where}\quad \left\{ \begin{aligned} \text{Hour} &= \left\lfloor \frac{s}{3600} \right\rfloor \\ \text{Minute} &= \left\lfloor \frac{s \bmod 3600}{60} \right\rfloor \\ \text{Second} &= s \bmod 60 \\ (\text{Y},\text{M},\text{D}) &= \text{civil}(\text{Days}) \end{aligned} \right. \end{gathered}$$

続いて、Howard Hinnant 氏による有名な整数アルゴリズム「days_from_civil」の逆変換を使って、日数をカレンダー上の日付へ対応づけます。このアルゴリズムは年の開始を3月にずらすことで、うるう日が年末に来るようにし、例外処理を不要にしている点が特徴です。曜日は \((\text{Days} + 4) \bmod 7\) で求められます。これは1970年1月1日が木曜日だったためです。

丸1日分とその日の残り秒数に分割されたタイムスタンプ
タイムスタンプを86400で割ると、丸1日分とその日の余りの秒数に分けられます。

計算例

ts = 1,700,000,000 の場合:\(\text{Days} = 19675\)、余り = 72800秒 = 22:13:20 となります。カレンダー日付の変換アルゴリズムにより、19675日目は 2023-11-14 に対応します。したがって結果は 2023-11-14 22:13:20 UTC です。

よくある質問

タイムゾーンには対応していますか? いいえ。出力は常にUTCです。現地時間に変換するには、お住まいの地域のUTCオフセットを加えてください(例:日本標準時 JST は +9時間)。

ミリ秒はどう扱いますか? 入力は秒単位のみです。ミリ秒のタイムスタンプをお持ちの場合は、まず1000で割ってから入力してください。

なぜうるう秒を扱わないのですか? Unix時間そのものが定義上うるう秒を無視するため、この変換ツールも同様に扱いません。

最終更新: