UNIX時間
[Wikipedia|▼Menu]
.mw-parser-output .ambox{border:1px solid #a2a9b1;border-left:10px solid #36c;background-color:#fbfbfb;box-sizing:border-box}.mw-parser-output .ambox+link+.ambox,.mw-parser-output .ambox+link+style+.ambox,.mw-parser-output .ambox+link+link+.ambox,.mw-parser-output .ambox+.mw-empty-elt+link+.ambox,.mw-parser-output .ambox+.mw-empty-elt+link+style+.ambox,.mw-parser-output .ambox+.mw-empty-elt+link+link+.ambox{margin-top:-1px}html body.mediawiki .mw-parser-output .ambox.mbox-small-left{margin:4px 1em 4px 0;overflow:hidden;width:238px;border-collapse:collapse;font-size:88%;line-height:1.25em}.mw-parser-output .ambox-speedy{border-left:10px solid #b32424;background-color:#fee7e6}.mw-parser-output .ambox-delete{border-left:10px solid #b32424}.mw-parser-output .ambox-content{border-left:10px solid #f28500}.mw-parser-output .ambox-style{border-left:10px solid #fc3}.mw-parser-output .ambox-move{border-left:10px solid #9932cc}.mw-parser-output .ambox-protection{border-left:10px solid #a2a9b1}.mw-parser-output .ambox .mbox-text{border:none;padding:0.25em 0.5em;width:100%;font-size:90%}.mw-parser-output .ambox .mbox-image{border:none;padding:2px 0 2px 0.5em;text-align:center}.mw-parser-output .ambox .mbox-imageright{border:none;padding:2px 0.5em 2px 0;text-align:center}.mw-parser-output .ambox .mbox-empty-cell{border:none;padding:0;width:1px}.mw-parser-output .ambox .mbox-image-div{width:52px}html.client-js body.skin-minerva .mw-parser-output .mbox-text-span{margin-left:23px!important}@media(min-width:720px){.mw-parser-output .ambox{margin:0 10%}}

この記事は検証可能参考文献や出典が全く示されていないか、不十分です。出典を追加して記事の信頼性向上にご協力ください。(このテンプレートの使い方
出典検索?: "UNIX時間" ? ニュース ・ 書籍 ・ スカラー ・ CiNii ・ J-STAGE ・ NDL ・ dlib.jp ・ ジャパンサーチ ・ TWL(2020年1月)
現在のUnix時間[注 1]
1715705321 (更新)
ISO 8601形式:2024-05-14T16:48:41Z)UNIX時間 1,000,000,000 まであとわずかの2001年9月9日

UNIX時間(ユニックスじかん)またはUNIX時刻(ユニックスじこく、UNIX time(ユニックスタイム)、POSIX time(ポジックスタイム))とはコンピューターシステム上での時刻表現の一種。協定世界時 (UTC) での1970年1月1日午前0時0分0秒(UNIXエポック)から形式的な経過秒数として表される。

真の経過秒数ではなく[1]、その間に挿入された閏秒を引き、削除された閏秒を加えた値である。大多数のシステムで採用されている[注 2]

UNIX系オペレーティングシステム(データ型はtime_t)だけでなく、他の多くのオペレーティングシステムにおいてもこの表現方法が用いられている。システム内部では64ビット符号付整数(signed int)や64ビット倍精度浮動小数点数で扱われていることが多い。ここで、以前は多かった32ビット整数で扱われていた場合で、符号付きであった場合、その最大値 2,147,483,647 を超えると負の値になり、正しく時刻を扱えなくなるという問題がある。これを2038年問題という。
協定世界時 (UTC) との関係

UNIX時刻はシステム依存だが、大多数のシステムでは、協定世界時 (UTC) の時刻に基づき、1970年1月1日午前0時0分0秒(UNIXエポック)からの経過秒数を、閏秒の存在を無視し形式的な差を計算した値に等しい。したがって正の閏秒1秒が挿入された時刻を挟んだ2秒間において、UNIX時刻の値は1秒しか値が進まない。システムによっては、前後のある程度の時間に分散させてズレを吸収するものもある。また閏秒の前後での、秒より細かい時刻の扱いについては、システムにより異なることがある(特に、閏秒によって時刻が1秒巻き戻ったかのように見える場合もあり得るので注意が必要)。

閏秒1秒が挿入された時刻をはさむUNIX時刻の例協定世界時 (UTC)UNIXエポックからの
真の経過秒数[注 3]UNIX時刻
1998-12-31T23:59:59915148820915148799
1998-12-31T23:59:60915148821915148800
1999-01-01T00:00:00915148822915148800
1999-01-01T00:00:01915148823915148801

表現できる日付の範囲「2038年問題」も参照

UNIXエポックからの経過時間を表現する際の単位として、秒以外にも、様々な単位を使うことができ、秒とナノ秒が利用されることが多めであるが、最初の JavaJavaScript はミリ秒を採用していた(java.lang.System.currentTimeMillis()[2] など)。表現するための数値として64ビット符号付き整数が使われることが多いが、64ビット倍精度浮動小数点数が使われることもある(Pythonのtime.time()[3]など)。かつては単位を秒として32ビット符号付き整数が使われたこともあったがこれは2038年までしか表現できない。

表現できる日付の範囲値の型時間単位日付の下限日付の上限
int32秒1901年12月13日20時45分52秒2038年1月19日3時14分7秒
int64秒2.9e11 BC2.9e11 AD[4]
ミリ秒2.9e8 BC2.9e8 AD[4]
マイクロ秒290301 BC294241 AD[4]
ナノ秒1677年9月21日 00:12:43.1452241922262年4月11日 23:47:16.854775807[5]

UNIX時刻の表示例

UNIX時間の例UNIX時間協定世界時 (UTC)日本標準時 (JST)
01970-01-01T00:00:001970-01-01T09:00:00
1000000001973-03-03T09:46:401973-03-03T18:46:40
10000000002001-09-09T01:46:402001-09-09T10:46:40
12345678902009-02-13T23:31:302009-02-14T08:31:30
21474836472038-01-19T03:14:072038-01-19T12:14:07

プログラミング言語やシェルからの利用例

UNIX/Linuxシェル上で、UNIX時間をUTCに変換する例date -u -d '@1234567890'

*BSDのシェル上で、UNIX時間をUTCに変換する例date -jr '1234567890'

UNIX/Linuxのシェル上で、UNIX時間をローカル時刻に変換する例date -d '@1234567890'

*BSDのシェル上で、UNIX時間をローカル時刻に変換する例date -j '+%s'

Webブラウザアドレスバー(URL欄)にJavaScriptを入力することで表示させる例(Firefox 6.0以降ではスクラッチパッド[注 4])javascript:window.alert(Math.floor((new Date()).getTime()/1000))

C言語で現在のUNIX時刻を表示するプログラム#include <stdio.h>#include <time.h>int main(void){ time_t now; now = time(NULL); printf("%lld", (long long)now); return 0;}
脚注[脚注の使い方]
注釈^ このページが最後に生成されたUNIX時間
^ システム(例えばLinuxシステム等のGNU Cライブラリ (glibc))は、tz databaseを用いて真の経過秒数に基づく時刻の方式に切り替え可能である。その場合は最新の閏秒情報を取得しシステムに反映させる作業が必要となる。
^ 協定世界時 (UTC) が国際原子時 (TAI) と同じSI秒を採用したのは1972-01-01T00:00:00Z以降であり、それ以前の協定世界時の1秒はSI秒とは異なる。
^ Internet Explorer 9以降、Google Chrome 13以降などのアドレスバーコピーペーストした場合は先頭に「javascript:」を追加してください。

出典^ これに対し例えばGPS時刻は真の経過秒数を表現する。
^ currentTimeMillis - System (Java SE 17 & JDK 17)
^ time.time --- 時刻データへのアクセスと変換 ? Pythonドキュメント
^ a b c Datetime Units - Datetimes and Timedeltas ? NumPy Manual
^ Time series / date functionality ? pandas documentation

関連項目

time_t

2001年9月9日問題

2038年問題

ユリウス通日 - ユリウス暦紀元前4713年1月1日の正午(世界時)からの日数。天文学で使われる。

時刻#コンピュータの時法

外部リンク

UNIX時間変換ツール


UNIX時間⇒日付変換

UNIXtime時刻相互変換ツール

UNIXTIME相互変換ツール - konisimple

Online Conversion - Unix time conversion(英語)


記事の検索
おまかせリスト
▼オプションを表示
ブックマーク登録
mixiチェック!
Twitterに投稿
オプション/リンク一覧
話題のニュース
列車運行情報
暇つぶしWikipedia

Size:13 KB
出典: フリー百科事典『ウィキペディア(Wikipedia)
担当:undef