1. でんぱ時計は、どうやって 1秒の ことを しるの?
1. 電波時計は、うるう秒をどうやって前もって知るのか
1. 電波時計は、うるう秒の予告をどの信号で受け取るのか
でんぱ時計は、まどの そばに おいて おくと、じぶんで 時間を なおして くれる 時計です。日本では、「JJY」と いう でんぱが、正しい 時間を 空から おくって います。
この でんぱには、時間の ほかに、「うるう秒が あります」と いう おしらせも のって います。おしらせは、うるう秒の ある 月の 1か月 まえから、ずっと 出され つづけます。
ふだんの 1ぷんは 60秒ですが、うるう秒の ときだけ、61秒に なります。でんぱ時計は、おしらせを うけて いるので、「60秒目」が 来ても あわてず、時間を なおせます。
電波時計は、窓ぎわに置いておくと、自分で時刻を直してくれる時計です。日本では、情報通信研究機構(NICT)が標準電波(JJY)を送っていて、時計はそれを受けています。
この電波には、時刻の信号に加えて、うるう秒の情報が入っています。NICTの説明では、うるう秒情報は実施される月の前の月の2日9時から、実施月の1日8時59分まで続けて送られます[2]。約1か月前から、予告が出ているわけです。
そして当日の瞬間には、ふだんは1分に60個ある秒の目印の列に、特別な目印が加わります。信号の構造上、うるう秒の瞬間は「60秒目」の位置の信号で表されます[2]。時計は、予告を受け取り、60秒目の信号でうるう秒を識別できるようになっています。
では、ふつうは電波を受けないスマホは、どうやって時刻を合わせているのでしょうか。
電波時計が受信するJJYの信号には、時刻符号に加えてうるう秒の情報が含まれる。NICTの説明では、この情報は実施月の前月2日9時0分から実施月の1日8時59分まで継続して表示される[2]。つまり、実施の約1か月前から、予告が電波に載っている。
では、当日の1秒は信号上でどう表されるのか。通常の1分は0〜59秒の60個の位置で構成されるが、正のうるう秒(挿入)の瞬間には、60秒の位置の立ち上がりが対応する。このとき59秒の位置は2進の0として扱われる[2]。受信機は、予告と60秒の位置の信号を使って、うるう秒の情報を受け取る。予告があるので、突然の信号を誤りと取りちがえる心配も小さくなる。
ただし、これは電波が届く場所で時計が受信できた場合の話である。電波を受けない端末は、別の経路で時刻を得ている。
2. スマホは、どこから 時間を もらって いるの?
2. スマホは、電波ではなく何から時刻をもらうのか
2. スマホはどの時刻源を優先し、どのくらいの間隔で更新するのか
スマホは、おもに インターネットを 通して、「時間を おしえる コンピューター」に 聞きに いきます。この ほうほうを NTP と よびます。
Androidの スマホの 作り方を 書いた しりょうでは、NTPが いちばん 先に 使われる 時間の もとと されて います。NTPが つかえない ときには、電話の ネットワークから 時間を もらう ほうほうに、きりかわります[3]。
おどろくのは、聞きに いく ひんどです。ふつうは 18時間に 1回だけ なのです[4]。1日に 1回 ちかくしか 聞かなくても、スマホの 時間は 大きく ずれません。
スマホには、電波時計のような専用の受信機能はありません。かわりに、インターネットで、時刻を教えてくれるコンピューター(時刻サーバー)に問い合わせます。この方法をNTPと呼びます。
Androidの仕様書は、Android 12以降の初期設定で、NTPを電話回線の時刻情報(NITZ)より優先すると書いています。NTPのほうが正確で信頼できるからです。NTPが使えないときは、NITZに切りかわります[3]。
意外なのは、問い合わせの回数です。通常のポーリング間隔は、64800000ミリ秒、つまり18時間と設定されています[4]。つまり、1日に1回強、サーバーにたずねるだけです。それでも使えるのは、時計が内部でも時間を刻んでいて、たまに答え合わせをすればよいからだと考えられます。
日本では、NICTがインターネット向けに公開NTPサービスを2006年6月から行っています[5]。サーバーは専用ハードウェア(FPGA)で作られていて、負荷が上がっても精度が落ちないと説明されています[7]。では、そのサーバーは、うるう秒をどうやって伝えるのでしょうか。
スマホは電波時計と違い、専用の受信機を持たない。Androidの仕様書では、Android 12以降の初期設定で、NTPがNITZ(電話回線の時刻通知)より優先される。NTPのほうが正確で信頼できるためで、NTPが使えない状況ではNITZに切りかわる[3]。電波時計のようなやり方に頼らず、複数の時刻源を重ねているのである。
問い合わせの間隔は意外に長い。通常のNTPのポーリング間隔は64800000ミリ秒、すなわち18時間である[4]。1日に1回強の問い合わせで足りるのは、端末が内部の時計で時間を刻んでおり、サーバーとの答え合わせは補正のために行うからと考えられる。これは資料の数値からの推測で、機種ごとに間隔が異なる場合もあり得る。
サーバー側では、NICTが2006年6月から公開NTPサービスを実施している[5]。そのサーバーはFPGAで実装され、負荷が上がっても精度が低下しないと説明される[7]。では、NTPはうるう秒の予告を、どの形で端末へ知らせるのか。
3. 1秒を いれる しゅんかん、時計は どう うごくの?
3. 1秒を足す瞬間、デジタルの時計はどう動くのか
3. 1秒の挿入をどう処理するか:予告のフラグ、時刻を止める方式、ならす方式
NTPでは、うるう秒の ちょくぜんに、サーバーが 送る データの 中に 「うるう秒が もうすぐ だよ」と いう 目じるしを つけます[5]。これで スマホも、じゅんびが できます。
日本では、うるう秒は 午前9時の すぐ 前に 入ります。2017年1月1日には、8時59分59秒と 9時0分0秒の あいだに、「8時59分60秒」が 入りました[10]。
この 1秒を、デジタル時計は どう あつかうのでしょう。アメリカの NISTと いう 研究所の 時間を おしえる サーバーは、23時59分59秒を 2回 くり返して、1秒 止める ように します[6]。
ほかに、一部の サーバーでは、1秒を ゆっくり、ながい 時間を かけて わける やりかたも あります。時計の すすみ方を ほんの すこしだけ おそくして、気づかない うちに 1秒ぶん あわせるのです[6]。
NTPでは、うるう秒の直前に、サーバーが送るデータの中に「うるう秒が近い」という印(LIビット)が立ちます。NICTの説明では、2016年12月31日の前日からその印が「01」になりました[5]。端末は、これで準備ができます。
日本時間では、うるう秒は午前9時の直前に入ります。直近では2017年1月1日で、8時59分59秒と9時00分00秒の間に、「8時59分60秒」が1秒だけ挿入されました[10]。デジタル時計は「60秒」を表示できるとは限りません。表示できない時計は、どうしているのでしょうか。
アメリカのNISTの時刻サーバーは、23時59分59秒の時刻を1秒間止めます。そのため、23時59分59秒の表示が2回続きます[6]。
止めるのとは別に、うるう秒をもっと長い時間に薄めて広げる「スミアリング」という方法もあります[6]。Googleは、うるう秒の前日の正午から翌日の正午(UTC)までの24時間をかけて、時計をゆっくり遅らせる方法を勧めています[11]。一瞬の1秒を、時計の目に見えないほどのずれに変える工夫です。
NTPでは、うるう秒の実施予告は、サーバーのパケット中のLIビット(Leap Indicator)で表される。NICTの案内では、2016年12月31日の前日からこのビットが「01」になった[5]。端末は、LIビットを見て、うるう秒が近いことを知る。
日本時間では、うるう秒は9時(JST)の直前に入る。最後の2017年1月1日には、8時59分59秒と9時00分00秒の間に「8時59分60秒」が挿入された[10]。問題は、デジタルの時刻表現が「60秒」を想定していないことが多い点である。同じ時刻が2回現れたり、時刻が飛んだりすると、時刻だけでは記録の順序を判断しにくくなる。
そこで処理は二つに分かれる。一つは時刻を止める方式で、NISTの時刻サーバーは23:59:59を1秒間止めて繰り返す[6]。もう一つはスミアリングで、周波数を調整して、うるう秒を長い区間にならして吸収する[6]。Googleは、前日正午から翌日正午(UTC)の24時間の線形なスミアを勧めている[11]。
どちらがよいかは、システムによって異なる。止める方式は時刻の連続性を、ならす方式は急な変化がないことを重んじる。サーバーごとに方式が統一されていないため、異なるシステム間では、その1秒のあいだに時刻が食いちがう場合がある。こうした事情から、そもそも1秒を足す仕組みそのものを見直す動きも出ている。
4. そもそも、どうして 1秒を ふやすの?
4. そもそも、なぜ1秒を足さなければならないのか
4. なぜ1秒を挿入する必要があるのか:UTCとUT1の差
時間を はかる ほうほうは 2つ あります。ひとつは、げんしの ふるえを つかう 時計です。とても 正しくて、ほとんど ずれません。もうひとつは、地球が 1回 まわる 長さを 使う ほうほうです。
でも、地球の まわる はやさは ほんの すこしずつ かわります。2つの 時間が ずれすぎないよう、ずれが 0.9秒を こえないように、1秒を ふやして あわせるのです[1]。それが うるう秒です。
ちなみに、いまの 世界の 時間と、げんし時計だけで 数えた 時間は、37秒ほど ちがって います[9]。
うるう秒は、時計の精度を上げるためではなく、2種類の時間のずれを小さく保つために入れます。一つは原子時計に基づく協定世界時(UTC)、もう一つは地球の自転に基づく世界時(UT1)です。NISTの説明では、この2つの差が0.9秒より小さくなるように、うるう秒が足されます[1]。
原子時計はほとんど狂いませんが、地球の自転の速さは少しずつ変わります。そのままにすると、時計の「正午」と太陽の位置がだんだん合わなくなります。
これまでに足された1秒が積み重なった結果、原子時計だけで数えた国際原子時(TAI)は、UTCより37秒進んでいます[9]。何十年もかけて、そこまでたまったわけです。
ところが、この小さな1秒が、コンピューターの世界では面倒の種になりました。
5. これから、うるう秒は どう なるの?
5. うるう秒は、これからどうなるのか
5. 2035年までの見直しと、負のうるう秒の可能性
2022年に、世界の 国が あつまる かいぎで、うるう秒に ついて きまりが 出ました。2035年までに、時計の ずれの 上げんを 見なおす、と いう ものです[8]。コンピューターの せかいで めんどうが 多い ことも、りゆうの ひとつと されて います。
もう ひとつ、おどろきの 話が あります。地球の まわる はやさを はかった けっか、はじめて 1秒を へらす 「マイナスの うるう秒」が いるかもしれない、と いわれて います。でも、へらす やりかたは、まだ きまって いません[8]。
1秒を足す仕組みそのものも、見直しが始まっています。2022年の国際度量衡総会(CGPM)は、UT1とUTCの差の最大値を、2035年までに、またはそれまでに大きくすると決めました[8]。デジタル社会への影響を考えた決定です。新しい上限値や運用ルールは、まだこれからです。
同じ決議には、もう一つの話が出ています。最近の地球の自転の観測から、史上初の「負のうるう秒」、つまり1秒を削る調整が必要になるかもしれない、というのです。ただ、実施の方法は決まっていません[8]。
これまで見てきたように、電波時計は予告でうるう秒を迎え、スマホはNTPで時刻を取り、サーバーは止めるかならすかで1秒を処理しています。1秒を削る場合に、それぞれがどう対応するかは、これから検討される話題です。
2022年の第27回国際度量衡総会(CGPM)は決議4で、UT1−UTCの差の最大値を2035年またはそれ以前に拡大することを決めた[8]。うるう秒がデジタルインフラに及ぼす影響が背景にある。新しい上限値と運用ルールは、現在検討中である。
同じ決議は、近年の自転速度の観測から、史上初の負のうるう秒(1秒を削除)が必要になる可能性があると述べる[8]。これまで挿入だけを想定してきた処理は、削除に対応できるのか。電波時計の信号は、正のうるう秒の場合を例にして説明されているが、負の場合の運用は資料では示されていない。
実施方法は未定であり、時刻を止める方式とならす方式の食いちがいも解消されていない。負のうるう秒への対応も、2035年に向けて検討される課題の一つである。
6. じぶんの スマホの 時間は、どこから 来て いるのかな?
6. 自分のスマホの時刻合わせを見てみる
6. 設定画面で確かめ、原典に当たる
きょう できる こと
おうちの 人と いっしょに、スマホの 「せってい」を ひらいて、「ひづけと 時間」の ところを 見て みましょう。「じどうで あわせる」と いう スイッチが あれば、そこが ネットワークから 時間を もらう ところです。きしゅに よって 名前が ちがう ことが あります。さわりすぎて、せっていを かえない ように しましょう。
しらべる とき
NICTの ホームページには、日本語で 書かれた 「うるう秒」の せつめいが あります。おとなの 人と いっしょに 読んで みましょう。
設定画面を見る
スマホの「日付と時刻」の設定を開き、「自動設定」や「ネットワークの時刻を使う」といった項目があるか見てみましょう。ここが、NTPなどで時刻を合わせる部分に当たります。表示は機種によって違い、さわりすぎると時刻が狂うので、オンかオフかを見るだけにしてください。
身近な時計と比べる
スマホは、「日付と時刻」の設定で、自動で合わせる設定がオンになっているか見てみましょう。電波時計は、電波を受信できる場所に置くと、自動で合わせます。
資料を読むなら
設定画面で確かめる
スマホの日付と時刻の設定で、自動設定の項目の有無を見る。第2章で見たとおり、Androidでは、NTPが優先され、使えないときはNITZに切りかわる[3]。表示や名称は機種で異なる。時刻を手で変えると不具合の原因になるため、確認だけにとどめる。
資料を読むなら
JJYの信号の構造はNICTの「標準電波の出し方」[2]、うるう秒の実施の実例とNTPの公開開始はNICTのQ&A[5]、スミアの考え方はNISTの資料[6]とGoogleの解説[11]、2035年の決議はBIPMの文書[8]にある。海外の資料は英語で、原典を読む場合は、本文の数値との対応を確かめながら進めるとよい。
しらべた もとの じょうほう
参考にした情報源
参考にした情報源と、その使い方
本文で使った資料です。
- NIST. Leap Seconds FAQs. https://www.nist.gov/pml/time-and-frequency-division/leap-seconds-faqs (うるう秒の目的と0.9秒の基準)
- NICT. 標準電波の出し方. https://www2.nict.go.jp/sts/jst/jjy/trans/index.html (予告の期間/60秒の位置の信号)
- Android Open Source Project. Time source priority. https://source.android.com/docs/core/connect/time-source (NTPとNITZの優先順位)
- Android Open Source Project. Network time detection. https://source.android.com/docs/core/connect/time/network-time-detection (18時間の問い合わせ間隔)
- NICT. 標準時・周波数標準のQ&A うるう秒に関するQ&A. https://www2.nict.go.jp/sts/jst/QandA/reference/leapsec-addendum2017.html (LIビット/公開NTPの開始)
- NIST. Internet Time Service (ITS). https://www.nist.gov/pml/time-and-frequency-division/time-distribution/internet-time-service-its (時刻を止める方式とスミアリング)
- NICT. 公開NTPサービス. https://www.nict.go.jp/sts/ntp.html (専用ハードウェアのサーバー)
- BIPM. Resolution 4 of the 27th CGPM (2022). https://www.bipm.org/en/-/resolution-cgpm-27-4 (2035年の見直しと負のうるう秒)
- NIST. Leap second and UT1-UTC information. https://www.nist.gov/pml/time-and-frequency-division/time-realization/leap-seconds (TAIとUTCの37秒の差)
- NICT. 2017年1月1日のうるう秒挿入について. https://www2.nict.go.jp/sts/jst/QandA/reference/leapsec-addendum2017.html (午前9時直前に入る例)
- Google. Google Public NTP: Leap Smear. https://developers.google.com/time/smear (24時間のスミア)
なおした ところ
更新履歴
更新履歴(改版の記録)
- 初版を公開。
このサイトでは、公開した記事の本文は原則として書き直しません。誤りが見つかったときや、内容が古くなったときだけ手を入れ、その理由をこの欄に残します。