UNIX時間を日本時間に変換
UNIX 時間の節目(日本時間)
UNIX 時間の節目の位置
日本時間でいつにあたるかです。「今日から」は日本時間の今日からの日数で、日付が変わると数え直されます。上で入れた時間のすぐ後に来る節目には「入れた時間の次」と付きます。
| 節目 | UNIX 時間 | 日本時間 | 今日から |
|---|---|---|---|
| 10億秒 | 1000000000 | 2001年9月9日(日)10:46:40 | 9,183日前 |
| 15億秒 | 1500000000 | 2017年7月14日(金)11:40:00 | 3,396日前 |
| 17億秒 | 1700000000 | 2023年11月15日(水)07:13:20 | 1,081日前 |
| 18億秒 | 1800000000 | 2027年1月15日(金)17:00:00 | あと76日 |
| 20億秒(入れた時間の次) | 2000000000 | 2033年5月18日(水)12:33:20 | あと2391日 |
| 2^31−1(2038年問題) | 2147483647 | 2038年1月19日(火)12:14:07 | あと4098日 |
数え方と結果の読み方
計算の仕方
日本時間=UTC+9 時間。UNIX 時間(秒)=1970年1月1日 0:00(UTC)からの経過秒数。ミリ秒は 1000 倍の数
- 入れた数字が 12 桁以上ならミリ秒、11 桁以下なら秒として読みます(ミリ秒は 1000 で割って秒にします)。
- 秒に 9 時間(32,400 秒)を足して、日本時間の日付と時刻にします。
- UTC の時刻は 9 時間足す前の値、ISO 8601 は日本時間に「+09:00」を付けた書き方です。
- 日時から UNIX 時間へ戻すときは、日本時間から 9 時間を引いた UTC の時刻と 1970年1月1日 0:00(UTC)の差を、秒で数えます。
結果の読み方と使いどころ
図の線は、節目(10億秒から2038年問題まで)を日本時間の日付で並べています。次の節目は濃い色で、入れた時間の日付が節目と違う日なら「入れた時間」の点も置きます。今日と次の節目が近くて点が重なるときは、今日の点を省きます。
UNIX 時間は世界で共通の数で、日本時間はそれに 9 時間を足した表示です。UTC の 15:00 から 23:59 は、日本時間では次の日の 0:00 から 8:59 にあたるので、日付がずれることがあります。
2038年問題は、時刻を 32 ビットの符号つき整数で持つ古いシステムで、2^31−1(2147483647)秒を超えると数が負に折り返す問題です。日本時間では 2038年1月19日(火)12:14:07 にあたります。
秒・ミリ秒・マイクロ秒の桁の早見
同じ時刻でも、単位が 1000 倍ずつ変わると桁が 3 つずつ増えます。この道具は、12桁以上をミリ秒、11桁以下を秒として読みます。
| 単位 | 桁 | 2027年1月15日 17:00 の値 | 使われる場所 |
|---|---|---|---|
| 秒(入れた数字はこれ) | 10桁 | 1800000000 | date +%s・Python の time.time()・多くの API |
| ミリ秒 | 13桁 | 1800000000000 | JavaScript の Date.now()・Java・Kotlin |
| マイクロ秒 | 16桁 | 1800000000000000 | 一部のログ・データベース(この道具では読み取りません) |
よくある間違い
秒とミリ秒を取り違える
JavaScript の Date.now() や Java の System.currentTimeMillis() はミリ秒(13桁)、多くの Unix コマンドや Python の time.time() は秒(10桁)です。13桁の数を秒として読むと、何千年も先の日時になります。この道具は桁で判定し、どちらで読んだかを添え書きに出します。
UTC のままの時刻を日本時間と読む
UNIX 時間から出た時刻は UTC です。日本時間は 9 時間進んでいるので、UTC の 15:00 以降は日本では翌日の日付になります。
new Date(秒) に秒を渡す
JavaScript の Date は、ミリ秒を受け取ります。秒の数は 1000 を掛けてから渡さないと、1970年1月の日時になります。
負の数や 0 を誤りだと思う
0 は 1970年1月1日 0:00(UTC)=日本時間の 9:00 で、負の数はそれより前の日時です。この道具は日本時間の 1926年1月1日以降を扱います。
よくある質問
UNIX 時間が 1970年より前の日時になるのは、どんなときですか?
負の数を入れたときです。0 が 1970年1月1日 0:00(UTC)で、マイナス 86400 ならその 1 日前(1969年12月31日 0:00 UTC)です。この道具は日本時間の 1926年1月1日以降を扱います。
なぜ 2038年1月19日が節目なのですか?
時刻を 32 ビットの符号つき整数で持つと、2147483647 秒が上限だからです。この秒は UTC の 2038年1月19日 3:14:07、日本時間の 12:14:07 にあたり、超えると負の数に折り返します。
うるう秒は数えますか?
数えません。UNIX 時間は 1 日を必ず 86,400 秒として数える約束なので、うるう秒の日も同じ長さとして扱います。
入れた数字や日時はどこかに送られますか?
計算はこの端末のブラウザの中だけで行い、入れた数字は送られません。予定のファイルも端末の中で作ります。「Google カレンダーに入れる」を押したときだけ、次の節目の題と日付が Google に送られます。