UNIX時間 【UNIX time】 エポック秒 / UNIX時刻 / POSIX時間

概要

UNIX時間(UNIX time)とは、コンピュータにおける日時の表現規則の一つで、主にUNIX系OSで標準的に用いられている形式。時刻を協定世界時(UTC)1970年1月1日午前0時ちょうどからの経過秒数で表す。

オペレーティングシステム(OS)やアプリケーションソフトで日付・時刻の記録や処理を行う際の内部的なデータ表現の方法を定めたもので、ある特定の日時を、1970年1月1日午前0時0分0秒(これを「UNIXエポック」という)からの経過秒数を意味する整数で表す。現行の太陽暦の規則に従って単純計算するため、閏年は考慮されるが閏秒は考慮されない。

現在のUNIX時間は です

現代のコンピュータは秒より短い単位で時間を計測、カウントする回路を内蔵しているため、システムの種類やプログラミング言語によっては、UNIX時間をミリ秒(1000分の1秒)単位で表した「エポックミリ秒」、マイクロ秒(100万分の1秒)単位で表した「エポックマイクロ秒」、ナノ秒(10億分の1秒)単位で表した「エポックナノ秒」を取得できる場合もある。

2038年問題

C言語ではtime_t型というデータ型で表されるが、これは実際には32ビット符号付き整数型(signed integer)として扱われてきた。このデータ型の最大値は21億4748万3647であるため、秒数がこの値に達する西暦2038年1月19日3時14分7秒(UTC)を過ぎると正しく時刻を表すことができなくなる。これを「2038年問題」という。

2038年問題を避けるため、近年のソフトウェアではtime_t型を64ビット符号付き整数型に拡張して扱うよう改修する動きが盛んになっている。この値が上限に達するのは西暦3000億年頃である。64ビットへの変更が難しいシステムでは急場しのぎとして32ビット符号なし整数型(unsigned integer)に変更して2倍の秒数を扱えるよう変更する場合もある。この方式が上限に達するのは西暦2106年である。

(2024.7.2更新)

他の辞典による解説 (外部サイト)

この記事の著者 : (株)インセプト IT用語辞典 e-Words 編集部
1997年8月より「IT用語辞典 e-Words」を執筆・編集しています。累計公開記事数は1万ページ以上、累計サイト訪問者数は1億人以上です。学術論文や官公庁の資料などへも多数の記事が引用・参照されています。