1 ポイント 投稿者 GN⁺ 4 시간 전 | 1件のコメント | WhatsAppで共有
  • IERS Bulletin C 72により、2026年12月末のUTCにはうるう秒が追加されないため、時刻測定・配信システムは別途挿入処理を準備する必要はない
  • UTCとTAIの差は、2017年1月1日0時UTCから追って通知があるまで UTC-TAI = -37 s のまま維持される
  • うるう秒の導入有無は UT1-TAIの変化 に基づいて決定され、可能な時期は6月末または12月末
  • Bulletin Cは6カ月ごとにUTCの時間ステップ(time step)を発表するか、次の可能日に時間ステップがないことを確認する
  • 2026年末のUTC配信には新しい補正値は不要で、既存の UTC-TAI = -37 s の関係を引き続き使用すればよい

IERS Bulletin C 72のUTC告知

  • IERSが2026年7月6日にParisで発行したBulletin C 72は、2026年12月末にうるう秒を導入しないと明らかにした
  • 告知の対象は、時刻の測定と配信を担う機関
  • 重要な値は次の2つ
    • 2017年1月1日0時UTCから追って通知があるまで UTC-TAI = -37 s
    • 2026年12月末にはUTCに新たな時間ステップはない

うるう秒の決定と告知周期

  • うるう秒は UT1-TAI の変化に応じてUTCに導入される場合がある
  • 導入可能な時期は毎年 6月末 または 12月末
  • Bulletin Cは6カ月ごとに送付される
    • UTCに時間ステップが生じる場合はそれを発表する
    • 次の可能日に時間ステップがない場合はそれを確認する

1件のコメント

 
GN⁺ 4 시간 전
Hacker News のコメント
  • この予測不可能性は何が原因で生じるのか気になる。地球の自転と公転は小数点以下かなりの桁まで分かっているものだと思っていたが、地質活動や天候のような要因が自転速度の違いを生み、予測を難しくしているのだろうか?

    • 短く言えば、その通り。天候、地質活動、それに帯水層の枯渇・ダム建設のような人間による水の移動、氷河や氷の融解が、いずれも地球の自転周期と自転軸に予測しにくい変化を与える
      これらのモデルは記憶では低次の三角多項式なので、予測不可能性を完全にモデル化できたとしても、打ち切り誤差のために非常に高い精度で配布するのは難しく、衛星などにすでに組み込まれているため、任意に複雑にすることもできない
      ちなみにうるう秒は近く廃止される予定で、2035年に段階的に停止されると認識している。ロシアが GLONASS 衛星を更新する時間が必要だったため遅れた、と記憶している
    • その通り。そうした要因や、さらに多くの要因がある。私たちの測定精度は、1日の長さが年ごとに変わる一次・二次の変化率よりもはるかに高い
      https://datacenter.iers.org/singlePlot.php?plotname=Bulletin... がこれに最も関連するグラフで、垂直方向のジャンプはうるう秒を表している。IERS には自転の他の次元に関するグラフもあるが、このグラフが見やすい
    • ちょうど最後のうるう秒がいつ入ったのかを見ようと Wikipedia の記事を確認したところ、答えもそこにあった
      「地球の自転速度は気候および地質学的事象に反応して変化するため、UTC のうるう秒は不規則に配置され、正確には予測できない」
      https://en.wikipedia.org/wiki/Leap_second
    • むしろ逆に近い。地球の自転は年ごとに数秒単位でも変わり得るが、数百年にわたって見ると変動はおおむね相殺される
      だから、うるう秒を足したり引いたりしようとするのはあまり良い考えではないと思う。こうしたことを気にするのは実質的に宇宙機関だけで、彼らは必要な補正値を適用すればよく、全員に影響を与える必要はない
      一般人にとってこの drift が及ぼす現実的な影響は GPS くらいだが、GPS はすでに独自の時計とのオフセットを送信しており、受信機が補正できる。GPS の時計は UTC とも TAI とも異なる
    • https://en.wikipedia.org/wiki/Leap_second#:~:text=Other%20co... を見ればよい
  • これはむしろアンチニュースではないか? 現代のコンピューティングシステムにあまりに多くの問題を引き起こすため、別途告知があるまでうるう秒の導入を止めた、とぼんやり記憶している
    今は37秒の差であり、クリスマスがイースターの頃までずれ込むのではないかと誰も心配する必要はない。この問題は、他の多くの問題よりもずっと責任ある形で将来世代に引き継いでよいと思う
    6か月ごとに告知が出るのは、元の国際条約の文言に合わせるための手続きにすぎない

    • まだそうなったわけではない。提案にすぎず、正式な停止は2035年までは難しい可能性が高い
      うるう秒がしばらくなかった理由は、TAI と UT1 の間の drift が遅くなり、実際には非常にゆっくり反対方向へ動いているからだ
    • 告知期間が6か月だけというのはおかしいと感じるし、それが問題の原因である可能性が高い
      時刻が±60秒ほどずれても誰も気づかないだろうから、10年に一度くらい任意のうるう秒を入れ、10年前に告知して全員がシステムを整理する時間を与える方が、管理しやすそうに見える。世界全体が調整して実行するのに6か月というのは、ばかげて楽観的だ
  • 5歳児に説明するように言うと、これはUNIX タイムスタンプにどんな影響を与えるのか気になる。特に保守モードのものや、ほとんど管理されていないものについて
    自分の仕事にはこの程度の精度は必要ないが、確実に必要な分野はあるはずだ

    • UNIX タイムスタンプはうるう秒を完全に無視し、存在しないものとして扱う
      そのため、うるう秒が挿入されると UNIX タイムスタンプで参照できない物理的な1秒が生じることがあり、うるう秒が削除されると実際には存在しない秒に対する UNIX タイムスタンプが生じることがある
    • うるう秒が追加されるたびに、Google はサーバーの時計をより長い期間、通常は数時間かけて遅く、または速く進め、NIST のどこかにある純プラチナ製の完全な球形の掛け時計にゆっくり合わせ直していた: https://developers.google.com/time/smear
    • time()clock_gettime(CLOCK_REALTIME) の結果はうるう秒の影響を受ける
      新しいうるう秒は NTP 経由でシステムに届く。残念ながら NTP は、うるう秒が導入されるという表示フラグだけを配布し、オフセット自体は配布しない。ただし配布される時刻そのものがすでにうるう秒の影響を受けているため、NTP クライアントが必ず知る必要はない
      一方、GPS や PTP のような他の時刻同期方式は、うるう秒の影響を受けない時間尺度を使い、UTC オフセットを追加情報として配布する。受け取った時刻を最後に修正するのはクライアント側の役割だ。カーネルにはうるう秒用の clock_adjtime() パラメータがある
      NTP クライアントがある手動システムなら、稼働中に新しいうるう秒に合わせて時刻が変わる。Linux は UTC 時刻を優先して扱うため、これが RTC デバイスに保存され、再起動後も維持される
      CLOCK_TAI は TAI 時刻を返すべきに見えるが、一般的な Linux デスクトップ・サーバー配布版ではオフセットすら設定されず、CLOCK_REALTIME と同じ時刻を返すほど二級扱いだ
      /etc の中には、どこかのパッケージに含まれるうるう秒リストファイルがあり、このファイルを更新するにはシステム更新が必要だ。従来の NTP ソフトウェアがこのパッケージを動的に更新するとは思わない。ただし、このファイルを使うソフトウェアも多くない
      何らかの init サービススクリプトがこれをパースしてカーネルの UTC オフセットを設定するなら、更新前まではシステムの CLOCK_TAI が世界の他より1秒遅れる可能性がある。しかし私の知る限り、Linux の UTC 時刻には何の影響も与えない
  • 「時間の測定と配布を担う機関へ」という文言は、史上最高レベルに仰々しい

    • さらに良いのは、その組織名が International Earth Rotation Service だという点
    • 長年にわたり、USNO で各種の精密時刻プロダクトを統括していたリーダー職の肩書きは「Director of the Directorate of Time」だった
    • Douglas Adams の小説に出てきそうな表現
    • 「Director Earth Orientation Center of IERS Observatoire de Paris, France」
      肩書きまで SF っぽい
  • UTC-TAI オフセットが -37 秒のままなら、UTC-GPS オフセットも -18 秒のままという意味
    TAI と GPS の間には一定の 19 秒オフセットがある

  • こういう状況で Spanner のようなシステムはどうなるのか気になる
    厄介事なのか、それとも大したことではないのか?

    • 大問題。これを扱う最も一般的な方法は スミアリング(smearing) と呼ばれ、「うるう秒」の前 24 時間にわたって各秒の長さを調整する
      厳密な順序保証が必要なシステムでは、各デバイスがグローバル時計との同期を保ち、時計周期の長さだけがごくわずかに変わるので機能する。実際、元の Spanner 論文に載っていたと記憶している
      まれに、単調発振器の秒を使って地球自転の秒を無視するシステムもあるが、いつかそれを実時刻に変換しなければならないなら、時間が経つほど破局が蓄積していくため、一般には良い考えではないとされる
    • うるう秒はうるう日のように定期スケジュールで追加されるものではなく、地球の物理的な測定によって決まる
      なので、包括的な時刻管理を備えた高信頼性システムは、こうした選択に大きく揺さぶられることはなさそう
  • Temporal API があれば、ブラウザや Node.js などはその時点付近の演算で時刻を正しく扱えるのだろうか? それとも計算を壊さないために更新が必要なのだろうか?

    • Temporal API は、うるう秒を無視する Unix/POSIX タイムスタンプを基盤にしているように見える。Unix 時間では 1 日は常に 86400「秒」
      そのため、データベースなしでも過去と未来の UTC カレンダー計算を簡単に行え、必ずしも小数秒を扱う必要もない。うるう秒は、OS が 1 秒を繰り返すか飛ばすか、あるいはうるう秒の前後の一定期間にわたって秒の長さを調整する形で処理する
      ほとんどの日付・時刻 API は基本的に、ビジネス機能向けのカレンダーおよび壁時計演算を支えるよう設計されている。科学目的に必要な SI 秒が必要なら、ハードウェアレベルまで必要な意味論を提供し保証する別の API や機能を使うべき
      同様に、スレッドの sleep のようなソフトウェア機能のためのタイマーが必要なら、単調時計のような専用インターフェースを使うべき。うるう秒が段階的に廃止されても、この状況は大きく変わらない。うるう秒調整があってもなくても、例えばミューテックスアルゴリズムが Unix タイムスタンプに依存するのは、昔も間違いだったし今後も間違い
  • ちょっと聞いてくれ。赤道にジェットエンジンを付けて 180 度回して、時間を得たり失ったりすればいい。そしてそれを自分のスヌーズボタンにつなげればいい

    • Superman が地球の周りをものすごい速さで何周もするほうが簡単じゃない? そうすればエンジンのメンテナンスを心配しなくて済む
    • 実際には、非常に大量の水を移動させれば測定可能な影響を与えられるかもしれない。例えば California Central Valley の帯水層を枯渇させるように
    • 問題は、未来社会がそのエンジンを恒星間探査船用に回収してしまうこと。この問題は Larry Niven の本シリーズで扱われていた
    • みんなで同時にジャンプすればいい気もする。必要なのは 1〜2 秒だけなんじゃない?
    • しばらくうるう秒を入れる必要がなかったところを見ると、この方法が効いたらしい
  • 「UTC と TAI の差は 2017 年 1 月 1 日 0 時 UTC から別途通知があるまで UTC-TAI = -37s」とある
    これは原子時計が日時計より 37 秒遅れているという意味なのか? 2017 年に言及している理由も分からない

    • むしろ逆に近い
      UTC の 1 日は正確に 86400 SI 秒と定義されている。しかし実際の平均太陽日は数ミリ秒長い。地球自転の不規則性のため差は一定ではないが、平均的な差は時間とともにゆっくり大きくなると予想されている。SI 秒は原子時計で数えるので、UTC は原子時計の 86400 秒ごとに日付を進める
      一方、平均太陽が正午に到達するたびに日付を進める日時計は、UTC より数ミリ秒遅く日付を進める。実際の太陽は一年を通じて空を横切る速度が変わるため、平均太陽を使う必要がある
      別の言い方をすると、日時計が正確に 86400 秒と呼ぶ各期間は、原子時計基準では数ミリ秒長い
      こうしたことが毎日積み重なってほぼ 1 秒になると、UTC にうるう秒を挿入し、その日の長さを 86400 秒ではなく 86401 秒にする。UTC は単に原子時計の時間を数えるだけでなく、多くの人間活動が空の太陽の位置と結びついているため、太陽とも同期していなければならないから
      人間は「太陽と同期」を「平均太陽と 1 秒以内」と定義した。つまり UTC の正午が、本初子午線における平均太陽の正午から 1 秒以内であってほしいということ
      したがって 37 秒とは、うるう秒を使わなかった場合に、平均太陽の正午が UTC の正午からどれだけ遅れていたかを意味する。UTC の正午の時点で、平均太陽は空で本初子午線を通過するまでまだ 37 秒足りなかったはず
    • Wikipedia によれば、2016 年 12 月が最後にうるう秒が挿入された時点: https://en.wikipedia.org/wiki/Leap_second
    • 2017 年に言及しているのは、その時点で最後にオフセットが変わったからだと思う。だから -37 秒がその時からずっと有効な状態になっている