タイムスタンプ | エポック | 変換

> タイムスタンプ | エポック | 変換 <

// Unixタイムスタンプと日付を瞬時に相互変換

現在のタイムスタンプ
[ライブ]

リアルタイム時計

リアルタイムで更新されるUnixタイムスタンプ表示。現在のepoch時間をリアルタイムで確認。

[双方向]

双方向変換

タイムスタンプを読みやすい日付に、日付をタイムスタンプに変換。両方向対応。

[無料]

複数フォーマット

ISO 8601、RFC 2822、UTC、ローカル時間、相対時間で結果を表示。

// UNIXタイムスタンプについて

Unixタイムスタンプの仕組み:

Unixタイムスタンプ(epoch時間またはPOSIX時間とも呼ばれる)は、1970年1月1日 00:00:00 UTC(Unixエポック)から経過した秒数を表します。このシンプルな整数値は、タイムゾーンに依存しない普遍的な時間表現方法を提供します。

例:

1711324800 → 2024-03-25T00:00:00.000Z

一般的な使用例:

  • >データベースのタイムスタンプ保存とクエリ
  • >APIレスポンスの時間フィールド
  • >ログファイルのタイムスタンプ分析
  • >時間関連の問題のデバッグ
  • >タイムゾーン間の時間調整
  • >Y2K38問題: 32ビット符号付き整数は2038年1月19日にオーバーフロー

>> よくある質問

Q: Unixタイムスタンプとは?

A: Unixタイムスタンプは1970年1月1日 00:00:00 UTCからの経過秒数です。コンピューティングで普遍的に使用されるシンプルな整数値です。

Q: エポック時間とは?

A: エポック時間はUnixタイムスタンプの別名です。「エポック」は基準点で1970年1月1日 00:00:00 UTCを指します。

Q: Y2038問題とは?

A: 2038年問題(Y2K38)は、多くのシステムがUnixタイムスタンプを32ビット符号付き整数で保存しており、2038年1月19日 03:14:07 UTCまでしか表現できないために発生します。

Q: 秒とミリ秒のタイムスタンプの違いは?

A: 秒単位のUnixタイムスタンプは10桁(例: 1711324800)、ミリ秒は13桁(例: 1711324800000)です。

Q: Unixタイムスタンプは負の値になれますか?

A: はい、負のUnixタイムスタンプは1970年1月1日以前の日付を表します。例えば、-86400は1969年12月31日を表します。

// よく使われるエポック値

タイムスタンプのデバッグに役立つ基準値です。日時はすべて UTC です。

エポック値日時(UTC)
01970-01-01 00:00:00
864001970-01-02 00:00:00
9466848002000-01-01 00:00:00
10000000002001-09-09 01:46:40
12345678902009-02-13 23:31:30
17000000002023-11-14 22:13:20
20000000002033-05-18 03:33:20
21474836472038-01-19 03:14:07
42949672952106-02-07 06:28:15

// コードでエポックを日付に変換

JavaScript  new Date(epoch * 1000).toISOString()
Python      datetime.fromtimestamp(epoch, tz=timezone.utc)
PHP         gmdate('c', $epoch)
Go          time.Unix(epoch, 0).UTC()
Java        Instant.ofEpochSecond(epoch)
MySQL       FROM_UNIXTIME(epoch)
Bash        date -u -d @$epoch   # macOS: date -u -r $epoch

>> その他の質問

Q: Unix時間が1970年1月1日から始まるのはなぜですか?

A: 1971年頃、ベル研究所の初期の Unix 開発者が、32ビットのカウンタを小さく保てるよう、単純でキリがよく当時は新しい日付を選びました。それが定着し、現在ほとんどのシステムの標準エポックになっています。

Q: ExcelやGoogleスプレッドシートでエポックを日付に変換するには?

A: A1にエポック秒がある場合、=(A1/86400)+25569 を入力してセルを日付/時刻形式にします。ミリ秒なら 86400000 で割ります。逆変換は =(A1-25569)*86400 です。

Q: エポック変換結果が想定と違う日付になるのはなぜですか?

A: 主な原因は、秒とミリ秒の取り違え(13桁はミリ秒)、タイムゾーン表示の違い(同じエポックでも UTC とローカルで時刻が異なる)、別のエポックを使うシステム(NTP は 1900 年、Windows FILETIME は 1601 年)です。

Q: エポック値の最大値はいくつですか?

A: 符号付き32ビットは 2,147,483,647(2038-01-19 03:14:07 UTC)、符号なし32ビットは 4,294,967,295(2106-02-07 06:28:15 UTC)が上限です。64ビットなら数千億年分を表せます。

// 他の言語