UNIX時間

UNIX時間(UNIX時刻)とは



UNIX時間(またはUNIX時刻POSIX時間とも呼ばれる)は、コンピュータシステムで広く用いられる時刻表現の一種です。これは、協定世界時(UTC)の1970年1月1日午前0時0分0秒(UNIXエポック)からの経過秒数を基準としています。

閏秒の扱い


UNIX時間は、真の経過秒数ではなく、挿入された閏秒を差し引き、削除された閏秒を加味した値として計算されます。これは、実際の時間経過と若干のずれが生じる可能性があることを意味します。多くのシステムではこの方式が採用されていますが、閏秒の扱いについてはシステムによって異なる場合があります。

システムでの表現


UNIX時間は、UNIXオペレーティングシステムだけでなく、他の多くのシステムでも利用されています。内部的には、64ビット符号付き整数や64ビット倍精度浮動小数点数で扱われることが多いです。

2038年問題


かつては32ビット整数でUNIX時間を扱っていたシステムも存在しましたが、この場合、2038年1月19日午前3時14分7秒(UTC)を過ぎると値がオーバーフローし、時刻を正しく扱えなくなるという問題が発生します。これは「2038年問題」として知られています。

協定世界時(UTC)との関係


UNIX時間は、基本的にはUTCに基づいています。ただし、閏秒を考慮した上で、形式的な経過秒数として計算されるため、実際の時間経過とは異なる場合があります。例えば、閏秒が挿入された場合、UNIX時間の値は1秒しか進まないことがあります。

様々な時間単位


UNIX時間の表現には、秒の他にも様々な単位が使用されることがあります。秒とナノ秒がよく利用されますが、JavaJavaScriptではミリ秒が用いられることもあります。また、数値を表現する際には、64ビット符号付き整数や64ビット倍精度浮動小数点数が利用されることがあります。

UNIX時間の表示例


UNIX時間は、プログラミング言語やシェルから利用することができます。以下にいくつかの例を示します。

UNIX/Linux シェルでの表示例:
UTCに変換:
`date -u -d '@1234567890'`
ローカル時刻に変換:
`date -d '@1234567890'`
BSD シェルでの表示例:
UTCに変換:
`date -jr '1234567890'`
ローカル時刻に変換:
`date -j '+%s'`
Webブラウザ (JavaScript) での表示例:
javascript
javascript:window.alert(Math.floor((new Date()).getTime()/1000))

C言語での例:

c

include


include



int main()
{
time_t current_time;
time(¤t_time);
printf("現在のUNIX時間: %ld
", current_time);
return 0;
}



関連情報


time_t: UNIX時間を取り扱うためのデータ型。
2001年9月9日問題: 特定のシステムで発生した日付関連の問題。
2038年問題: 32ビットシステムで発生する可能性のある問題。
ユリウス通日: 天文学で用いられる別の時刻表現。
時刻#コンピュータの時法: コンピュータにおける時刻表現全般に関する情報。

外部リンク


UNIX%E6%99%82%E9%96%93%E5%A4%89%E6%8F%9B%E3%83%84%E3%83%BC%E3%83%AB'>UNIX時間変換ツール
UNIX%E6%99%82%E9%96%93%E2%86%92%E6%97%A5%E4%BB%98%E5%A4%89%E6%8F%9B'>UNIX時間⇒日付変換
UNIXtime%E6%99%82%E5%88%BB%E7%9B%B8%E4%BA%92%E5%A4%89%E6%8F%9B%E3%83%84%E3%83%BC%E3%83%AB'>UNIXtime時刻相互変換ツール
UNIXTIME相互変換ツール - konisimple
* Online Conversion - Unix time conversion(英語)

もう一度検索

【記事の利用について】

タイトルと記事文章は、記事のあるページにリンクを張っていただければ、無料で利用できます。
※画像は、利用できませんのでご注意ください。

【リンクついて】

リンクフリーです。