DevToolKits.app
Article

UNIXタイムとタイムゾーンの基礎知識:エンジニアが知っておくべきこと

UNIXタイムの定義から、ミリ秒と秒の違い、タイムゾーン(UTC/JST)の扱い、開発でよくある罠までを詳しく解説します。

UNIXタイムとタイムゾーンのイメージ

UNIXタイム(エポック秒)とは?

UNIXタイム(UNIX Time)は、**1970年1月1日 00:00:00 UTC(協定世界時)**からの経過秒数を表す数値です。「エポックタイム」とも呼ばれます。

コンピューターシステムにおいて、日付や時刻を扱う際の標準的な形式として広く利用されています。

なぜUNIXタイムを使うのか?

  1. 比較が容易: 数値であるため、2つの日時の前後関係や差分を簡単に計算できます。
  2. タイムゾーンに依存しない: UNIXタイム自体は常にUTCに基づいているため、地理的な場所に関わらず同一の数値を共有できます。
  3. データ量が少ない: 文字列(例: 2026-01-14 12:00:00)に比べて保存容量が小さく済みます。

秒か、ミリ秒か?

開発現場で最も多いミスの一つが、「秒」と「ミリ秒」の混同です。

  • 秒 (Seconds): 10桁の数値(例: 1736823600)。PHPやPython、標準的なUNIXコマンドなどでよく使われます。
  • ミリ秒 (Milliseconds): 13桁の数値(例: 1736823600000)。JavaScriptの Date.now() や Java などで一般的に使われます。

APIから取得した値がどちらの単位かを確認することは、正確な日時計算において極めて重要です。

タイムゾーンとオフセットの扱い

UNIXタイムは常にUTCですが、人間が読み取る際にはその土地の「タイムゾーン」に変換する必要があります。

  • UTC (協定世界時): 世界の基準時刻。
  • JST (日本標準時): 日本の時刻。UTCより9時間進んでいます(UTC+09:00)。

2038年問題とは?

古いシステム(32ビットの整数型を使用しているもの)では、UNIXタイムが 2,147,483,647(2038年1月19日 03:14:07 UTC)を超えると、オーバーフローして負の値に戻ってしまう問題があります。現代の新しく構築されるシステムの多くは64ビットを利用しているため、この問題は解消されつつあります。

DevToolKitsで簡単に変換する

手動で計算するのは面倒でミスが起きがちです。当サイトのツールを使えば、双方向の変換が瞬時に行えます。

  1. UNIXタイム変換: UNIXタイム(秒・ミリ秒)と日時の相互変換が可能です。
  2. タイムゾーン変換 (UTC⇔JST): 異なるタイムゾーン間での日時計算をサポートします。

💡 ヒント: ISO8601形式(2026-01-14T12:00:00Z)での表示にも対応しているため、API仕様の確認などにも便利です。

関連ツール

広告

広告