ツール

Unix Timestamp変換|Epoch秒・ミリ秒を日時にリアルタイム変換

数値(秒・ミリ秒・マイクロ秒・ナノ秒)と日時文字列を自動判定します。

初期値は日本時間(Asia/Tokyo)。Z や +09:00 を含む入力はその情報を優先します。

🔒 入力内容はサーバーへ送信せず、ブラウザ内だけで変換します。

Unix Timestamp・Epochとは

Unix Timestamp(Unix時間)は、
1970年1月1日00:00:00 UTC
基準(エポック)にした
経過時間を表す数値です。

「Epoch time」「エポック秒」とも呼ばれ、
Unix Timestamp とほぼ同じ意味で使われます。
でも文脈で単位が変わるのが要注意。
秒のことも、ミリ秒のこともあります。

10桁・13桁・16桁・19桁の違い

桁数は、あくまでおおよその目安です。
代表的な対応を表にまとめました。↓

桁数の目安単位
10桁前後1752550200
13桁前後ミリ秒1752550200000
16桁前後マイクロ秒1752550200000000
19桁前後ナノ秒1752550200000000000

とはいえ桁数は、日時によって増減します。
桁数だけで単位を断定するのは危険
上のツールは、値の範囲も見て判定します。

Unix Timestampを日時へ変換する方法

主要な言語での変換例です。
秒とミリ秒の取り違えにだけ、
気をつけてくださいね。

Java

long ms = 1752550200000L;
Instant instant = Instant.ofEpochMilli(ms);          // ミリ秒から
ZonedDateTime jst = instant.atZone(ZoneId.of("Asia/Tokyo"));

Instant fromSec = Instant.ofEpochSecond(1752550200L); // 秒から

Kotlin

val ms = 1_752_550_200_000L
val instant = Instant.ofEpochMilli(ms)               // ミリ秒から
val jst = instant.atZone(ZoneId.of("Asia/Tokyo"))

JavaScript

new Date(1752550200000)      // ミリ秒はそのまま
new Date(1752550200 * 1000)  // 秒は 1000 倍が必要

Date はミリ秒が前提です。
秒を渡すときは1000倍を、
忘れないでくださいね。

Python

from datetime import datetime, timezone

datetime.fromtimestamp(1752550200, tz=timezone.utc)            # 秒から
datetime.fromtimestamp(1752550200000 / 1000, tz=timezone.utc)  # ミリ秒は1000で割る

PostgreSQL

SELECT to_timestamp(1752550200);              -- 秒から
SELECT to_timestamp(1752550200000 / 1000.0);  -- ミリ秒は1000で割る

UTCとJSTで時刻がずれる理由

Unix Timestamp の値は、
それ自体タイムゾーンを持ちません
常にUTC基準の経過時間です。
JSTやUTCの表示は、
変換時にタイムゾーンを当てた結果なんです。

日本時間はUTCより9時間進んでいる(UTC+9)。
だから同じ値でも、
JSTとUTCは9時間ずれて見えます。
夏時間のある地域は、固定オフセットだけでは足りません。

よくある間違い

秒とミリ秒の取り違え(1000倍のし忘れ)
タイムゾーンの二重適用で9時間ずれる
TZなしの日時をUTC扱いしてしまう
ミリ秒超をNumberで扱って精度が落ちる
マイクロ秒・ナノ秒をミリ秒として渡す
ISO 8601末尾のZを見落とす

よくある質問

Unix TimestampとEpochは同じですか?

ほぼ同じ意味です。
どちらも1970年1月1日00:00:00 UTC からの
経過時間を指します。
ただし単位(秒・ミリ秒)は文脈しだいです。

10桁と13桁は何が違いますか?

10桁前後は
13桁前後はミリ秒が目安です。
ミリ秒は秒を1000倍した値なので、桁が増えます。

Unix Timestampにタイムゾーンはありますか?

値そのものは持ちません
常にUTC基準の経過時間です。
JST表示は、変換時にタイムゾーンを当てた結果です。

JavaScriptで秒を日時に変換するには?

new Date() はミリ秒が前提です。
秒の値は1000倍します。
例:new Date(1752550200 * 1000)

負のUnix Timestampは変換できますか?

変換できます
負の値は1970年より前の時刻です。
たとえば -1 は 1969年12月31日 23:59:59 UTC。

2038年問題とは何ですか?

秒を32ビット整数で持つと、
2038年1月19日で上限を超えて
あふれてしまう問題です。
64ビットやミリ秒で保持すれば回避できます。

単位の取り違えは、実務で地味にハマります。
このページをブックマークして、
迷ったらすぐ変換してくださいね。
それではまた!