CalquioCalquio

検索

計算ツールを検索

タイムスタンプ変換

Unixタイムスタンプを読みやすい日付に変換、またはその逆も。秒とミリ秒対応。

コードサンプル
// Get current Unix timestamp (seconds)
const timestamp = Math.floor(Date.now() / 1000);
// Get current timestamp (milliseconds)
const timestampMs = Date.now();
// Convert timestamp to Date
const date = new Date(timestamp * 1000);
// Convert Date to timestamp
const ts = Math.floor(date.getTime() / 1000);

関連ツール

Unixタイムスタンプとは?

Unixタイムスタンプ(エポック時間やPOSIX時間とも呼ばれる)は、1970年1月1日 00:00:00 UTC(「Unixエポック」として知られる瞬間)から経過した秒数です。

今この瞬間、タイムスタンプは 1705312800 のような数値です。

なぜ1970年1月1日? 1970年代初頭にUnixが開発されていた時、作成者は開始点が必要でした。近くてキリの良い日付を選びました。当時のUnixシステムはあまり遡れなかったのです!

なぜ重要なの?

  • タイムスタンプは言語に依存しない - すべてのプログラミング言語が理解できる
  • タイムゾーンに依存しない - 常にUTC
  • 時間差の比較と計算が簡単
  • どこでも使われている:データベース、API、ログファイル、Cookie

タイムスタンプ形式

形式単位一般的な用途
Unix(秒)1705312800ほとんどのAPI、データベース
Unix(ミリ秒)ミリ秒1705312800000JavaScript、Java
Unix(マイクロ秒)マイクロ秒1705312800000000高精度ログ

クイックチェック: 数字が10桁なら秒、13桁ならミリ秒です。JavaScriptの Date.now() はミリ秒を返します!

記憶に残るタイムスタンプ

🎉 Unixエポックのマイルストーン

タイムスタンプ日付イベント
01970年1月1日Unix時間の始まり
10000000002001年9月9日最初の10桁タイムスタンプ
12345678902009年2月13日世界中で「エポックパーティー」
21474836472038年1月19日⚠️ 2038年問題

⚠️ 2038年問題

多くの古いシステムはタイムスタンプを符号付き32ビット整数で保存しており、最大値は 2147483647(2038年1月19日 03:14:07 UTC)です。

この瞬間を過ぎると、これらのシステムは「オーバーフロー」して1901年12月13日だと思ってしまいます!

現代のシステムは64ビット整数を使用しており、2920億年はオーバーフローしません。

タイムスタンプとタイムゾーン

UTCの美しさ

Unixタイムスタンプは常にUTCです。これでタイムゾーンの頭痛が解決します:

タイムスタンプ: 1705312800

= 2024年1月15日 10:00:00 UTC
= 2024年1月15日 19:00:00 JST(東京)
= 2024年1月15日 05:00:00 EST(ニューヨーク)
= 2024年1月15日 11:00:00 CET(ベルリン)

同じ数字、異なるローカル時間。タイムスタンプを扱う時:

  1. すべてをUTCタイムスタンプとして保存
  2. 表示時のみローカル時間に変換
  3. ユーザー入力はそのタイムゾーンで受け取り、すぐにUTCに変換

よくある間違い: タイムスタンプがローカルタイムゾーンだと思い込むこと。そうではありません - 常にUTCです!

実用的な変換のヒント

クイック計算

  • 1日 = 86,400秒
  • 1週間 = 604,800秒
  • 1ヶ月 ≈ 2,592,000秒(30日)
  • 1年 ≈ 31,536,000秒

一般的な操作:

// 現在のタイムスタンプ
Math.floor(Date.now() / 1000)

// 1日追加
timestamp + 86400

// 1週間引く
timestamp - 604800

タイムスタンプの豆知識

📅 負のタイムスタンプ 1970年より前の日付は負の数で表されます:

  • -1 = 1969年12月31日 23:59:59 UTC
  • -86400 = 1969年12月31日 00:00:00 UTC

🎂 あなたの誕生日をUnix時間で 1990年3月15日生まれ?あなたのタイムスタンプは約 637,632,000 です!