unix時間とは
UNIX時間またはUNIX時刻(UNIX time or POSIX time)とはコンピューターシステム上で日時を表す単位。UTCでの1970年1月1日真夜中(0時0分0秒)からの経過秒数(閏秒を加味しない)で表される。
UNIX系オペレーティングシステムだけでなく、他の多くのオペレーティングシステムにおいてもこの単位が用いられている。システム内部では32ビットまたは64ビットの符号付整数(signed int)で扱われていることが普通であり、特に32ビットで扱われている場合においては符号付整数が取れる最大値 2147483647 を超える時点で時刻を扱えなくなるという問題がある。これを2038年問題という。
UNIX時刻の表示例
特異なUNIX時間の例
UNIX時間 |
UTC |
JST |
0 |
1970-01-01T00:00:00 |
1970-01-01T09:00:00 |
100000000 |
1973-03-03T09:46:40 |
1973-03-03T18:46:40 |
1000000000 |
2001-09-09T01:46:40 |
2001-09-09T10:46:40 |
1234567890 |
2009-02-13T23:31:30 |
2009-02-14T08:31:30 |
2147483647 |
2038-01-19T03:14:07 |
2038-01-19T12:14:07 |
UNIX/Linuxのシェル上で、UNIX時間をUTCに変換する例
$ date -u -d '@1234567890'
UNIX/Linuxのシェル上で、UNIX時間をローカル時刻に変換する例
$ date -d '@1234567890'
unix時間を人間にわかりやすい形に成形する
$ echo unix時間 | awk '{ print strftime("%c",$1) }'
で、年月日時分秒が出せる