数値(秒・ミリ秒・マイクロ秒・ナノ秒)と日時文字列を自動判定します。
初期値は日本時間(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ビットやミリ秒で保持すれば回避できます。
単位の取り違えは、実務で地味にハマります。
このページをブックマークして、
迷ったらすぐ変換してくださいね。
それではまた!













