Unixタイムスタンプ、今週火曜から17で始まる
(unixtimestamp.com)- Unixタイムスタンプが17億台に入るということは、1970年1月1日 UTC 以降の累積秒数がそこまで積み上がったことを意味し、例の値は
1782553539と表示される - 変換ツールはタイムスタンプを GMT、ユーザーのタイムゾーン、相対時間に変換し、秒・ミリ秒・マイクロ秒・ナノ秒の単位をサポートする
- 同じ時刻を ISO 8601 と複数の RFC 形式でもあわせて表示するため、システム間での日付表現の違いを確認しやすい
- Unixタイムスタンプは場所に関係なく同じ時点を指すため、分散アプリケーションで日付情報の追跡と並べ替えに役立つ
- 2038年1月19日には 32ビットオーバーフロー が問題になるため、アプリケーションは新しいタイムスタンプ慣例を採用するか、64ビットシステムへ移行する必要がある
Unixタイムスタンプの基準と変換方法
- Unixタイムスタンプは時間を秒単位の累積値として扱う方式である
- 基準点は1970年1月1日 UTC の Unix Epoch
- 特定の日付と Unix Epoch の間に経過した秒数がタイムスタンプ値になる
- この値は、ユーザーが地球上のどこにいても同じ時点を指す
- ページの変換ツールは、タイムスタンプ入力と日付/時刻入力の両方をサポートする
- タイムスタンプは秒、ミリ秒、マイクロ秒、ナノ秒単位で入力できる
- 日付/時刻は年、月、日、24時間制の時、分、秒を入力して Unixタイムスタンプへ変換する
- 結果は GMT、ユーザーのタイムゾーン、相対時間形式で確認できる
あわせて表示される標準時刻形式
- 現在の epoch の例は、複数の標準時刻形式でもあわせて提供される
時間単位の換算と2038年問題
- ページでは、人間が読める時間単位を Unixタイムスタンプの秒数に換算して表示する
- 1時間:
3600秒 - 1日:
86400秒 - 1週間:
604800秒 - 1か月、30.44日基準:
2629743秒 - 1年、365.24日基準:
31556926秒
- 1時間:
- 2038年1月19日には 32ビットオーバーフロー により Unixタイムスタンプが動作を停止する
- その前に数百万のアプリケーションが新しいタイムスタンプ慣例を採用しなければならない
- または 64ビットシステムへ移行して、タイムスタンプを利用できる期間をさらに延ばす必要がある
1件のコメント
Hacker Newsの反応
1億秒はあまりにも早く過ぎる
ちなみに Unix timestamp 1600000034 時点の New York Times の1面はこれだった:
https://web.archive.org/web/20200913122714/https://www.nytim...
そして 1500000301、1400000634、1300007806 の時点はそれぞれこちら:
https://web.archive.org/web/20170714024501/http://www.nytime...
https://web.archive.org/web/20140513170354/http://www.nytime...
https://web.archive.org/web/20110313091646/http://www.nytime...
Unix timestamp 1 600 000 000 もそれほど昔ではなく、2020-09-13 12:26:40 UTC だった
当時の HN での議論はこちら: https://news.ycombinator.com/item?id=24452885
その出来事を記念して書いた自分のブログ記事はこちら: https://susam.net/maze/unix-timestamp-1600000000.html
1億秒はおよそ3年2か月なので、こういうイベントは数年ごとに一度見られる
いちばん壮観なイベントは、まだ9年半先の Unix timestamp 2 000 000 000 だと思う: 2033-05-18 03:33:20 UTC。これはおよそ33年8か月に一度しかない
Python では 1700000000 はこう表示される:
$ python3 -q
GNU date(Linux):
$ date -ud @1700000000
Tue Nov 14 22:13:20 UTC 2023
BSD date(macOS, FreeBSD, OpenBSD など):
$ date -ur 1700000000
Tue 14 Nov 2023 22:13:20 UTC
コードベースの一部を担当するようになって、それらのファイルをたくさん扱ったが、どれも 8億〜9億台の数字だった
ある時点から、その範囲の数字を見るだけでだいたい何年何月かを数週間の誤差で即座に把握できるようになった
奇妙な環境は奇妙な超能力を育てる
[0] https://en.wikipedia.org/wiki/Multi-user_dungeon
運が良ければ 3333333333 も自分の目で見られるかもしれない。すごい日になるだろう
完璧なシャツを狙って https://datetime.store/ を開くにはちょうどいいタイミングだ
「ボス! DDoS を受けています!」
「いや、坊や、ただの火曜日だ」
その時刻を刻んだシャツも見つけられるのか気になる
999,999,999 から10億に切り替わるのを見ようと夜更かししていて、「今週のことは一生覚えているだろう」と思った
60時間後には世界中がその週を記憶することになるとは思わなかった
システムは epoch 以降の秒数を文字列として保存していたが、9桁に収まると想定していた
1000000000 になると最後の桁を切り捨て始め、その結果 Sat 1973-03-03 01:46:40 PST に戻って、実際の時間の10%の速度で進むようになった。かなり早く修正された
epoch イベントもきっと取り上げていたはずだ
2009年に Boston のあるホテルのロビーで開かれた 1234567890 集会 に行ったことがある
デリバティブ技術サポートチームのマネージャーがその時点がもうすぐだと教えてくれて、シェルを開いて
watchコマンドと epoch 秒を出力するdateコマンドを動かし、その瞬間を見届けたそれからまた仕事に戻った
見逃さないように上矢印と Enter をひたすら押していた
Vingeの A Deepness in the Sky で好きな点のひとつは、10進時間を使っていること: ksec や Msec のような単位
地球時間と10進時間の変換を示す素敵な対数スケールがある
大まかな計算をするとき、思ったより頻繁に役に立つ
Gsec が約3分の1世紀だということは、Tom Duff の観察のおかげで以前から知っていた
この体系にすぐ一般的に移行することはなさそうだ。生体リズムに結びついた単位があまりに便利だから
それでも、宇宙にいる人類を語るときにもっと頻繁に出てこないのは少し意外だ
[0] "How many seconds are there in a year? If I tell you there are 3.155 x 10^7, you won't even try to remember it. On the other hand, who could forget that, to within half a percent, pi seconds is a nanocentury." --Tom Duff
2038年1月19日 まであと5,148日
そこまで生きていたら、その翌日が私の65回目の誕生日だ。ちょうどデジタル・アルマゲドンに間に合うことになる
10進表記が変わる瞬間よりも、比較的上位の ビットが0から1に切り替わる瞬間 を祝うほうが理にかなっている
1億秒 という単位が気に入っている
1年より長く10年より短い。1.6e8 の時代はパンデミックだった。1.7e8 は何をもたらすだろう?
ほかの人たちもこういうことにワクワクしているのがいい。UNIX Timeval 愛好家なら、この
tfツールを試してみるといい [1]友人が C/Lex/Yacc で作ったものを15年半にわたって毎日使っていて、その楽しさを共有したくて Golang + Homebrew に移植した
[1] https://github.com/neomantra/tf
brew tap neomantra/homebrew-tap
brew install tf
こういう丸い数字を出力してみよう。
tfは10桁だと自動検出するので、seqもそこから始めた