Unixタイムスタンプとは何か
Unixタイムスタンプは、1970年1月1日 00:00:00 UTC(エポック)を起点とした経過秒数です。「2023年11月15日 何時何分」といった表現は国やタイムゾーンで変わりますが、経過秒数なら世界で1つの値に定まります。
だからデータベースの記録やAPIの日時フィールド、ログのタイムスタンプに広く使われています。表示のときだけ、利用者のタイムゾーンで「読める日時」に直すわけです。
Unixタイムスタンプと日時を相互変換できます。
タイムスタンプ → 日時
日時 → タイムスタンプ
このツールについて
はい、完全無料です。登録やサインインも不要です。
1970年1月1日00:00:00 UTC(エポック)からの経過秒数です。プログラムやAPIで広く使われる時刻の表現方法です。
秒単位のUnixタイムスタンプ(例:1700000000)とミリ秒単位(例:1700000000000)に対応しています。JavaScriptのDate.now()はミリ秒を返します。
ローカル時刻はお使いのブラウザ(デバイス)のタイムゾーンで表示されます。日本標準時(JST, UTC+9)の環境では日本時間で表示されます。
はい、スマートフォンのブラウザからもご利用いただけます。アプリのインストールは不要です。
ログやAPIで見かける「1700000000」のような数字が Unixタイムスタンプ(エポック秒)です。人間には読みにくい形式ですが、世界共通の1本の時間軸として扱えるため、システム間で時刻をやり取りするのに便利です。ここでは、変換するときにハマりやすい「単位」「タイムゾーン」「上限」の3点を整理します。
Unixタイムスタンプは、1970年1月1日 00:00:00 UTC(エポック)を起点とした経過秒数です。「2023年11月15日 何時何分」といった表現は国やタイムゾーンで変わりますが、経過秒数なら世界で1つの値に定まります。
だからデータベースの記録やAPIの日時フィールド、ログのタイムスタンプに広く使われています。表示のときだけ、利用者のタイムゾーンで「読める日時」に直すわけです。
最大の事故ポイントがこれです。Unixタイムスタンプには秒単位とミリ秒単位があります。
1700000000(10桁)1700000000000(13桁)JavaScript の Date.now() はミリ秒を返しますが、多くのAPIやUnix系コマンドは秒を使います。桁数を見れば見分けられます(10桁=秒、13桁=ミリ秒)。ミリ秒の値を秒として解釈すると、5万年ほど未来の日付になってしまうので、本ツールでは秒/ミリ秒を明示的に切り替えて確認してください。
タイムスタンプ自体はタイムゾーンを持ちません(UTC基準の絶対的な秒数)。「ズレる」問題は、表示に変換する段階で起きます。
本ツールのローカル時刻表示は、お使いの端末のタイムゾーン(日本なら JST=UTC+9)に従います。同時に ISO 8601 形式(2023-11-15T04:53:20Z のような表記)も併記されます。末尾の Z は UTC を意味します。サーバのログが UTC、手元が JST でずれて見えるときは、この9時間の差が原因であることがほとんどです。
Unixタイムスタンプを32ビット符号付き整数で扱うシステムは、2038年1月19日に上限(約21億秒)へ達し、それ以降を正しく表せなくなります。オーバーフローすると1901年など過去に巻き戻る不具合が起きます。
現代の多くの言語・OSは64ビットで扱うため実用上は問題ありませんが、古い組み込み機器やレガシーなDBカラム定義では今も注意が必要です。長期の有効期限を扱う設計では、桁あふれしない型を選びましょう。
Date.now()(ミリ秒)、Math.floor(Date.now()/1000)(秒)import time; time.time()(秒・小数)time()(秒)date +%s(秒)仕組みや歴史をもう少し詳しく知りたい方は タイムスタンプ完全ガイド をどうぞ。
このサイトでは、アクセス解析や広告配信のために Cookie を使用します。詳しくはプライバシーポリシーをご覧ください。