N2
NanToo
AD
開発者向け

Unixタイムスタンプ変換

Unixタイムスタンプと日時を相互変換。秒・ミリ秒の自動判別、リアルタイム時刻表示、JST/UTC対応。エンジニアの日常ツール。

現在のUnixタイムスタンプ

1776275888

1776275888846 ms

タイムスタンプ → 日時変換

日時 → タイムスタンプ変換

Unix秒

1776275888

Unixミリ秒

1776275888000

リファレンス

AD

Unixタイムスタンプ変換について

Unixタイムスタンプとは

Unixタイムスタンプ(Unix Timestamp)は、1970年1月1日 00:00:00 UTC(Unix Epoch)からの経過秒数で時刻を表す方式です。エポック秒POSIX時間とも呼ばれ、プログラミングやシステム管理において最も広く使われている時刻表現のひとつです。

タイムゾーンに依存しない単一の数値で時刻を表現できるため、異なるシステム間でのデータ交換や、データベースでの日時保存に適しています。

タイムスタンプ変換の仕組み

Unixタイムスタンプと人間が読める日時の変換は、以下の流れで行われます。

タイムスタンプ → 日時

  1. タイムスタンプの数値をミリ秒に変換(秒の場合は1000倍)
  2. 1970年1月1日 00:00:00 UTCに加算
  3. タイムゾーンを適用して表示(日本時間はUTC+9)

日時 → タイムスタンプ

  1. 指定された日時をUTCに変換
  2. 1970年1月1日 00:00:00 UTCとの差分を算出
  3. 差分を秒(またはミリ秒)で出力

本ツールでは、入力された数値が10桁程度なら秒、13桁程度ならミリ秒として自動判定します。

Unixタイムスタンプの用途

Unixタイムスタンプは、以下のような場面で広く利用されています。

  • プログラミング:JavaScript(Date.now())、Python(time.time())、PHP(time())など多くの言語で標準的に使用
  • API・Web開発:REST APIのレスポンスやJWTトークンの有効期限に使用
  • データベース:MySQLのUNIX_TIMESTAMP()、PostgreSQLのEXTRACT(EPOCH FROM ...)など
  • ログ分析:サーバーログやアクセスログのタイムスタンプ解析
  • ファイルシステム:ファイルの作成日時・更新日時の内部表現
  • 分散システム:TwitterのSnowflake IDなど、タイムスタンプベースのID生成

2038年問題(Y2K38)

2038年問題(Y2K38問題)は、32ビット符号付き整数でUnixタイムスタンプを扱うシステムに影響する問題です。

32ビット符号付き整数の最大値は 2,147,483,647(=2^31 - 1)で、これは2038年1月19日 03:14:07 UTC に相当します。この時刻を超えると整数がオーバーフローし、日時が1901年に戻るなどの誤動作が発生します。

現代の多くのシステムは64ビットに移行済みですが、組み込みシステムやレガシーソフトウェアでは依然として注意が必要です。64ビットでは約2920億年先まで表現可能なため、実質的に上限はありません。

よくある質問

Q. Unixエポック(Epoch)とは何ですか?
Unixエポックは、1970年1月1日 00:00:00 UTC のことを指します。Unixタイムスタンプは、このエポックからの経過秒数として定義されています。この基準点が選ばれた理由は、Unix OSの開発時期(1969〜1970年頃)に由来します。
Q. なぜ1970年が基準なのですか?
Unix OSが開発された1960年代後半〜1970年代初頭の時期にちなんでいます。当初はシステムの稼働開始に近い切りの良い日付として1970年1月1日が選ばれました。32ビットで当時から十分な未来(2038年)までカバーできる実用的な選択でした。
Q. 秒とミリ秒の違いは何ですか?
標準的なUnixタイムスタンプは秒単位(10桁程度)です。JavaScriptのDate.now()やJavaのSystem.currentTimeMillis()はミリ秒単位(13桁程度)を返します。本ツールは入力値の桁数から秒かミリ秒かを自動判定します。
Q. タイムゾーンはどう扱われますか?
Unixタイムスタンプ自体はタイムゾーンに依存しないUTCベースの値です。本ツールでは変換時にブラウザのローカルタイムゾーン(通常は日本時間 JST = UTC+9)を使用して表示します。UTC表示も併記しているため、他のタイムゾーンとの比較も容易です。
Q. 2038年問題はどのような影響がありますか?
32ビット符号付き整数でタイムスタンプを扱うシステムでは、2038年1月19日 03:14:07 UTC 以降にオーバーフローが発生します。現代の64ビットシステムでは問題ありませんが、組み込み機器やレガシーシステムでは対応が必要な場合があります。
Q. 負のタイムスタンプは何を意味しますか?
負のタイムスタンプは1970年1月1日より前の日時を表します。例えば -86400 は 1969年12月31日 00:00:00 UTC です。多くのプログラミング言語やデータベースは負のタイムスタンプにも対応しています。

関連ツール

このツールを評価
(0件)