Unix タイムスタンプ変換ツール
開発では時刻を Unix タイムスタンプ——1970 年からの経過秒数を表す数値——で保存することがよくありますが、人間には読めません。このツールはタイムスタンプをリアルタイムで読みやすい日時に変換し(ローカルと UTC を表示)、日時からタイムスタンプへの逆変換や、現在のタイムスタンプの表示も行います。
使い方
- タイムスタンプ→日付:10 桁(秒)または 13 桁(ミリ秒)のタイムスタンプを入力すると日付が即表示。
- 日付→タイムスタンプ:日時を選ぶと対応する Unix タイムスタンプを取得。
- 現在のタイムスタンプが必要なときは上部の数値をコピー。
主な用途
- API やログの時刻フィールドをデバッグする。
- データベース検索で時間範囲を換算する。
- スケジュールやトークンの有効期限を確認する。
まず「秒」か「ミリ秒」かを確かめる
データベースやログから 1700000000 のような数字を拾って、それが実際にいつなのかを知りたい——貼り付けて読める日時に変換する、という使い方が定番です。ここで誰もがつまずくのが単位で、秒とミリ秒では1000倍の差があります。
- 1700000000 は「秒」で、だいたい2023年11月あたりです。
- 1700000000000 は「ミリ秒」。これを秒として解釈すると、数万年先に飛んでしまいます。
変換結果の年があり得ない値なら、たいてい秒とミリ秒の取り違えです。もう一つ注意したいのがタイムゾーンで、同じタイムスタンプでもUTCと現地時間では表示される時刻が変わり、イベントの前後関係を追うときに誤解しがちです。
2038 年の境界はここで見える?
見えます。しかも誤解されがちな点を正してくれます。2147483647 はこのページで ローカル時刻:2038-01-19 11:14:07 UTC:2038-01-19 03:14:07。1 秒足した 2147483648 は ローカル時刻:2038-01-19 11:14:08 UTC:2038-01-19 03:14:08 で、何の文句もありません。算術は問題ないのです。JavaScript が倍精度で保持しているからです。2038 年問題は算術ではなく格納の問題です。符号付き 32 ビット整数にその数は入らないため、その列を int として読むものは負数に回り込み 1901 年に着地します。