エポックミリ秒・エポック秒⇔日時 自動変換ツール|13桁/10桁の違い・JavaScript・Excel対応
「エポックミリ秒」または「日時」を入力して変換したい方のボタンをクリックしてください。
(「エポック秒」から変換する場合は末尾に「000」を付与)
エポックミリ秒(UNIX時間ミリ秒)を、わかりやすく日付や時刻に変換できるツールです。
上の変換ツールにエポックミリ秒を入力すれば、即座に日時を取得できます。
逆に日時からミリ秒に変換することも可能です。
エポックミリ秒とは?
エポックミリ秒(epoch milliseconds)とは、1970年1月1日 00:00:00 UTC を基準時刻(エポック)として、そこからの経過時間を「ミリ秒単位」で表した数値です。
- 秒単位のエポック秒:
1640995200のような10桁の数値 - ミリ秒単位のエポックミリ秒:
1640995200000のような13桁の数値
| エポックミリ秒(13桁) | UTC日時 | JST(+9h) |
|---|---|---|
0 | 1970-01-01 00:00:00 | 1970-01-01 09:00:00 |
1700000000000 | 2023-11-14 22:13:20 | 2023-11-15 07:13:20 |
エポック秒(UNIX時間)とは?
エポック秒(epoch seconds)は、エポックミリ秒と同じく 1970年1月1日 00:00:00 UTC を基準とした経過時間ですが、単位が「秒」となるため 10桁前後の数値 になります。
UNIX/Linux 系のコマンドや、古い API・データベースのタイムスタンプカラムなどで主流の表現で、「UNIX時間(UNIX time)」「UNIXタイムスタンプ」とも呼ばれます。
| エポック秒(10桁) | UTC日時 | JST(+9h) |
|---|---|---|
0 | 1970-01-01 00:00:00 | 1970-01-01 09:00:00 |
1700000000 | 2023-11-14 22:13:20 | 2023-11-15 07:13:20 |
1735689600 | 2025-01-01 00:00:00 | 2025-01-01 09:00:00 |
エポック秒を上の変換ツールで使う方法
このページの変換ツールは「エポックミリ秒(13桁)」を前提に動作するため、10桁のエポック秒を変換したい場合は 末尾に「000」を追加 してから入力してください。
例:1700000000 → 1700000000000 として入力
エポック秒を取得・確認する手段
- UNIX / Linux / Mac ターミナル:
date +%s - JavaScript:
Math.floor(Date.now() / 1000)(Date.now() はミリ秒なので 1000 で割る) - Python:
int(time.time()) - MySQL:
SELECT UNIX_TIMESTAMP();
エポック秒(秒) と エポックミリ秒(ミリ秒) の使い分け
どちらを使うべきか迷ったときの目安は次のとおりです。
- エポック秒(10桁):秒精度で十分なケース、UNIX 系コマンドの戻り値、JWT トークンの
expクレーム、Linux のファイル更新日時など - エポックミリ秒(13桁):ブラウザ JavaScript の
Date.now()、Java のSystem.currentTimeMillis()、ログ解析などミリ秒精度が必要なケース
エポックミリ秒とエポック秒の違い
| 項目 | エポック秒 | エポックミリ秒 |
|---|---|---|
| 単位 | 秒 | ミリ秒 |
| 桁数 | 10桁程度 | 13桁程度 |
| 精度 | 秒まで | ミリ秒まで |
| 用途 | UNIX系システム・古いAPI | JavaScript・一部API |
変換が必要になるケース
- プログラミング言語やAPIの仕様差
例:JavaScriptではDate.now()がミリ秒を返すが、UNIXコマンドdate +%sは秒を返す - ログ解析
サーバーログやアクセス解析ツールがミリ秒単位で記録する場合 - データベース処理
タイムスタンプカラムの単位が異なる場合の変換
JavaScriptでのエポックミリ秒変換方法
// 日時 → エポックミリ秒
const ms = new Date("2025-08-08T10:00:00Z").getTime();
console.log(ms); // 1754647200000
// エポックミリ秒 → 日時
const date = new Date(1754647200000);
console.log(date.toISOString()); // 2025-08-08T10:00:00.000ZISO 8601 / RFC3339「Zulu」形式とエポックミリ秒の相互変換
近年の Web API では、エポック値ではなく ISO 8601 / RFC3339 形式の日付文字列を返すケースが増えています。たとえば Google Play Billing の purchases.subscriptionsv2 や GitHub API は、末尾に Z が付く UTC 表記を採用しています。
末尾の Z は「Zulu time」の略で、UTC と同義です。タイムゾーン情報を文字列に含むため、サーバー間でやり取りしても解釈ズレが起きにくいのが利点です。
| 表記例 | 精度 |
|---|---|
2025-08-08T10:00:00Z | 秒精度 |
2025-08-08T10:00:00.045Z | ミリ秒精度 |
2025-08-08T10:00:00.045123456Z | ナノ秒精度(RFC3339 仕様の最大) |
JavaScript での相互変換
JavaScript の Date は ISO 8601 文字列を直接パースでき、toISOString() で Zulu 形式に変換できるため、追加ライブラリは不要です。
// Zulu 形式 → エポックミリ秒
const ms = new Date("2025-08-08T10:00:00Z").getTime();
console.log(ms); // 1754647200000
// エポックミリ秒 → Zulu 形式
const zulu = new Date(1754647200000).toISOString();
console.log(zulu); // 2025-08-08T10:00:00.000ZKotlin / Java での相互変換
JVM 系言語(Kotlin / Java)では java.time.Instant.parse() で Zulu 形式の文字列を Instant オブジェクトに変換でき、toEpochMilli() でエポックミリ秒を取得できます。逆方向は Instant.ofEpochMilli() → toString() です。
import java.time.Instant
// Zulu 形式 → エポックミリ秒
val ms = Instant.parse("2025-08-08T10:00:00Z").toEpochMilli()
// 1754647200000
// エポックミリ秒 → Zulu 形式
val zulu = Instant.ofEpochMilli(1754647200000).toString()
// 2025-08-08T10:00:00ZGoogle Play Billing の purchases.subscriptionsv2 レスポンスの日時項目を Kotlin で実際に扱う際の詳細手順は、以下の記事で解説しています。
Excelでの変換方法
Excelの日付シリアル値は「1900年1月1日」を基準にしており、エポックとは基準日が異なります。
エポックミリ秒 → Excel日付
※A1にエポックミリ秒が入っている場合
= (A1 / 1000 / 86400) + DATE(1970,1,1)Excel日付 → エポックミリ秒
= (A1 - DATE(1970,1,1)) * 86400 * 1000UTCとタイムゾーンの注意点
- エポック時間は常にUTC基準
- 日本時間(JST)は+9時間
- 変換時にタイムゾーンを意識しないと、日付や時刻がずれることがある
まとめ
- エポックミリ秒は1970年1月1日からの経過時間をミリ秒単位で表したもの
- 秒単位の「エポック秒」と混同しないよう注意
- JavaScriptやExcelなど、環境に応じて変換方法は異なる
- 上部の変換ツールを使えば、複雑な計算なしに即変換可能
💡 ブックマークしておくと、ログ解析や開発作業でいつでも変換できて便利です。

