<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>うるう秒 | 徒然なるままに</title>
	<atom:link href="https://www.seichan.org/tag/%e3%81%86%e3%82%8b%e3%81%86%e7%a7%92/feed" rel="self" type="application/rss+xml" />
	<link>https://www.seichan.org</link>
	<description>インフラの基礎を学びたい人へ。DNS・メール・ネットワーク・認証・データベースから AWS の設計、生成AI の活用まで、入門の連載で解説します。</description>
	<lastBuildDate>Thu, 29 Oct 2026 09:19:25 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.1.4</generator>

<image>
	<url>https://www.seichan.org/blog/wp-content/uploads/2026/10/site-icon-2026-150x150.png</url>
	<title>うるう秒 | 徒然なるままに</title>
	<link>https://www.seichan.org</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>【NTP入門 第2回】時刻の基礎知識 ― UTC・TAI・うるう秒の廃止、UNIX時刻とNTP時刻、2036年・2038年問題、RTC</title>
		<link>https://www.seichan.org/2026/10/ntp-02-time-basics.html</link>
					<comments>https://www.seichan.org/2026/10/ntp-02-time-basics.html#respond</comments>
		
		<dc:creator><![CDATA[seichan]]></dc:creator>
		<pubDate>Thu, 29 Oct 2026 09:00:00 +0000</pubDate>
				<category><![CDATA[NTP サーバー]]></category>
		<category><![CDATA[2038年問題]]></category>
		<category><![CDATA[NTP]]></category>
		<category><![CDATA[UTC]]></category>
		<category><![CDATA[うるう秒]]></category>
		<category><![CDATA[タイムゾーン]]></category>
		<category><![CDATA[時刻同期]]></category>
		<guid isPermaLink="false">https://www.seichan.org/blog/?p=7001</guid>

					<description><![CDATA[「正しい時刻」は誰が決めているのか。天文の時刻と原子の時刻、UTC・TAI・UT1・GPS時刻・JSTの関係、うるう秒の廃止（2027年5月20日から連続したUTC）の決定、UNIX時刻とNTP時刻のエポック、2036年問題と2038年問題、LinuxとWindowsのタイムゾーンとRTC、時刻の源（原子時計・GNSS・JJY）までを図で解説します。]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">「ログの時刻がJSTのサーバーとUTCのサーバーがあって、並べると9時間ずれて見えます」<br>「うるう秒の日は、何か準備が必要ですか？」</p>



<p class="wp-block-paragraph">時刻を合わせる前に、<strong>何に合わせるのか</strong>を知っておく必要があります。世界の「正しい時刻」は誰が決めていて、コンピューターはそれをどう数えているのでしょうか。</p>



<p class="wp-block-paragraph">第1回では、時刻がずれると何が起きるかを見ました。第2回では、<strong>UTC・うるう秒・エポック・タイムゾーン</strong>といった時刻の基礎と、コンピューターの時計の仕組みを扱います。</p>


<div class=".for-sp">
<div id="im-5078de7a65f140ac9d12a50b8ac9ee9c">
  <script async src="https://imp-adedge.i-mobile.co.jp/script/v1/spot.js?20220104"></script>
  <script>(window.adsbyimobile=window.adsbyimobile||[]).push({pid:81546,mid:567719,asid:1946055,type:"banner",display:"inline",elementid:"im-5078de7a65f140ac9d12a50b8ac9ee9c"})</script>
</div>
</div>

<div class=".for-pc">
<!-- admax -->
<script src="https://adm.shinobi.jp/s/8ae3a18ff526e95e579f5814fddd88f6"></script>
<!-- admax -->
<!--
<div id="im-3931cf74888b4888ae5fb170df744749">
  <script async src="https://imp-adedge.i-mobile.co.jp/script/v1/spot.js?20220104"></script>
  <script>(window.adsbyimobile=window.adsbyimobile||[]).push({pid:81546,mid:567718,asid:1946233,type:"banner",display:"inline",elementid:"im-3931cf74888b4888ae5fb170df744749"})</script>
</div>
-->
</div>



<hr class="wp-block-separator has-alpha-channel-opacity"/>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-1" checked><label class="toc-title" for="toc-checkbox-1">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">天文の時刻と原子の時刻</a></li><li><a href="#toc2" tabindex="0">UTC・TAI・UT1・GMT・JSTの関係</a></li><li><a href="#toc3" tabindex="0">うるう秒</a></li><li><a href="#toc4" tabindex="0">うるう秒の廃止の決定</a></li><li><a href="#toc5" tabindex="0">エポック：UNIX時刻とNTP時刻</a></li><li><a href="#toc6" tabindex="0">2036年問題</a></li><li><a href="#toc7" tabindex="0">2038年問題</a></li><li><a href="#toc8" tabindex="0">タイムゾーンとRTC：LinuxとWindows</a></li><li><a href="#toc9" tabindex="0">コンピューターの時計（RTCとシステムクロック）</a></li><li><a href="#toc10" tabindex="0">時刻の源</a></li><li><a href="#toc11" tabindex="0">考えてみよう</a></li><li><a href="#toc12" tabindex="0">まとめ</a></li><li><a href="#toc13" tabindex="0">連載「NTP入門」全11回</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">天文の時刻と原子の時刻</span></h2>



<p class="wp-block-paragraph">時刻には、地球の自転をもとにした「<strong>天文の時刻</strong>」と、原子の振動をもとにした「<strong>原子の時刻</strong>」の2系統があります。</p>



<figure class="wp-block-image size-large"><img decoding="async" src="https://www.seichan.org/blog/wp-content/uploads/2026/09/ntp02-s013.png" alt="天文の時刻は1秒＝平均した1日の1/86,400で、GMT・観測地点ごとのUT0・極運動を補正したUT1があり自転の速さは一定でないこと、1967年に秒の定義が原子へ移り、1秒＝セシウム133原子の9,192,631,770回の振動として各国の約450台の原子時計からBIPMが加重平均でTAIを計算することを示す図"/></figure>



<ul class="wp-block-list">
<li>昔の1秒は、平均した1日の86,400分の1だった。英国グリニッジ天文台の子午線での平均太陽時が<strong>GMT</strong>（グリニッジ平均時）で、これを天文観測で精密にしたものが<strong>世界時（UT）</strong></li>


<li>観測地点ごとに求めた値が<strong>UT0</strong>、地球の自転軸のふらつき（極運動）を補正して地球全体で共通にしたものが<strong>UT1</strong>（季節変動も補正したUT2は、今はほぼ使わない）</li>


<li>ところが地球の自転は、潮汐による減速や大気・海洋・地球内部の動きで<strong>揺らぐ</strong></li>


<li>そこで1967年に、1秒は<strong>セシウム原子の振動 9,192,631,770 回分</strong>と定義し直された。この秒で数え続けた時刻が<strong>国際原子時（TAI）</strong>で、世界の約450台の原子時計から国際度量衡局（BIPM）が計算する</li>
</ul>



<p class="wp-block-paragraph">天文の時刻は観測して決め、原子の時刻は数えて決めるのです。</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading"><span id="toc2">UTC・TAI・UT1・GMT・JSTの関係</span></h2>



<figure class="wp-block-table"><table><thead><tr><th>時刻</th><th>何に基づくか</th><th>他との関係（2026年9月）</th><th>使われる場面</th></tr></thead><tbody><tr><td>UT1</td><td>地球の自転（観測）</td><td>UTC との差は ±0.9秒以内に保たれてきた</td><td>天文、衛星の軌道計算</td></tr><tr><td>TAI</td><td>原子時計の加重平均</td><td>TAI − UTC ＝ 37秒（2017年1月から変わらず）</td><td>時刻の基準の計算</td></tr><tr><td>UTC</td><td>TAI の秒＋うるう秒で UT1 に寄せる</td><td>世界の時刻の基準。NTP が配る時刻</td><td>サーバー・ログの記録</td></tr><tr><td>GMT</td><td>グリニッジの平均太陽時（歴史的な呼び名）</td><td>日常では UTC と同じ意味で使われるが厳密には別</td><td>英国の冬の常用時</td></tr><tr><td>GPS 時刻</td><td>GPS の原子時計</td><td>うるう秒を入れない。GPS − UTC ＝ 18秒</td><td>GNSS 受信機の内部</td></tr><tr><td>JST</td><td>UTC(NICT) ＋ 9時間</td><td>夏時間なし</td><td>日本の常用時</td></tr></tbody></table></figure>



<figure class="wp-block-image size-large"><img decoding="async" src="https://www.seichan.org/blog/wp-content/uploads/2026/09/ntp02-s014.png" alt="TAIを0として、GPS時刻は19秒遅れ、UTCは37秒遅れ（GPSとUTCの差は18秒）で、UT1はUTCの±0.9秒の帯を動き、GMTは日常ではUTCとほぼ同じ意味、JSTはUTC(NICT)に9時間を足したものであることを示す図"/></figure>



<ul class="wp-block-list">
<li><strong>UTC</strong>は、TAIと同じ原子の秒で刻み、うるう秒でUT1に寄せた時刻。<strong>NTPが配るのはUTC</strong></li>


<li>UTCそのものはBIPMが毎月、各国のデータから後で計算して公表する時刻で、各国の機関が実時間で作る近似値を<strong>UTC(k)</strong>と呼ぶ。日本ではNICT（情報通信研究機構）の<strong>UTC(NICT)</strong>で、<strong>JSTはこれに9時間を足した時刻</strong></li>
</ul>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph"><strong>ポイント</strong><br>サーバーの内部とログは<strong>UTCで持ち</strong>、人が見るときにタイムゾーンで変換するのが基本。</p>
</blockquote>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading"><span id="toc3">うるう秒</span></h2>



<p class="wp-block-paragraph">UTCはTAIと同じ原子の秒で刻むため、そのままでは地球の自転（UT1）から少しずつ離れます。そこで1972年から、UT1との差が0.9秒を超えないよう、国際地球回転・基準系事業（IERS）の判断で、UTCに1秒を足し引きしてきました。これが<strong>うるう秒</strong>です。</p>



<figure class="wp-block-image size-large"><img decoding="async" src="https://www.seichan.org/blog/wp-content/uploads/2026/09/ntp02-s015.png" alt="2016年12月31日（UTC）の最後の数秒で、23:59:59の次に23:59:60（日本時間8:59:60）が入ったことと、1972年に10秒から始まったTAI−UTCが27回すべて＋1秒の挿入で37秒になり2017年以降は挿入がないことを示すグラフ"/></figure>



<ul class="wp-block-list">
<li>挿入は原則6月末か12月末で、<strong>23時59分59秒の次に23時59分60秒</strong>を入れる（日本時間では8時59分60秒）</li>


<li><strong>27回すべてが1秒を足す調整</strong>で、最後は2016年12月31日（日本時間2017年1月1日）</li>


<li>NTPは、パケットの<strong>LI（うるう秒指示子）</strong>で事前に予告する（第3回）</li>
</ul>



<p class="wp-block-paragraph">しかし「1分は60秒」「時刻は戻らない」を前提にしたプログラムは多く、2012年にはLinuxカーネルの不具合で多数のサーバーのCPU使用率が急上昇し、2017年には時間差が負になってCloudflareのDNSの一部が失敗しました。うるう秒は、<strong>障害の種</strong>でもあったのです。</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading"><span id="toc4">うるう秒の廃止の決定</span></h2>



<p class="wp-block-paragraph">冒頭の「うるう秒の日は準備が必要か」への答えは、「<strong>もう入らない見込み</strong>」です。</p>



<figure class="wp-block-image size-large"><img decoding="async" src="https://www.seichan.org/blog/wp-content/uploads/2026/10/ntp02-s016.png" alt="1972年のうるう秒の開始、2016年12月31日の27回目（最後）、2022年11月のCGPM決議4で2035年までに上限を拡大、2026年10月15日の第28回CGPMの決議5で2027年5月20日から連続したUTCに決定（うるう秒なし・|UT1−UTC|の上限1時間）、2017〜2026年は挿入なし（TAI−UTC＝37秒）という流れを示す年表"/></figure>



<ul class="wp-block-list">
<li>2022年11月の第27回国際度量衡総会（CGPM）は決議4で、UT1とUTCの差の上限を遅くとも2035年までに大きくすることを決め、少なくとも100年はUTCを連続させられる新しい上限を次の総会に示すよう求めた</li>


<li>これを受けて2026年10月15日、第28回CGPMは決議5（決議案Cとして提出）を採択し、「<strong>連続したUTCを2027年5月20日から有効にし、|UT1−UTC|の上限を3,600秒（1時間）とする</strong>」ことを決めた。<strong>うるう秒の廃止は、2035年から2027年5月20日に前倒しされた</strong></li>


<li>前倒しの背景は、地球の自転が速まり、前例のない「1秒を削る」<strong>負のうるう秒</strong>が必要になりそうなこと。2025年の専門家の会合は、その確率を2035年までに30%と見積もり、重要インフラを混乱させる危険が高いとされた</li>


<li>なお、IERSは2026年12月末もうるう秒を入れないと発表しており、TAI−UTCは37秒のまま</li>
</ul>



<p class="wp-block-paragraph">最後のうるう秒は2016年末で、制度として止める段階に入りました。ただし、うるう秒を前提にした仕組み（第7回で扱う<strong>リープスメア</strong>など）は、当面は残ります。</p>


<div class=".for-sp">
<div id="im-c929b2770f964f7f88505b9ee7500db9">
  <script async src="https://imp-adedge.i-mobile.co.jp/script/v1/spot.js?20220104"></script>
  <script>(window.adsbyimobile=window.adsbyimobile||[]).push({pid:81546,mid:567719,asid:1946057,type:"banner",display:"inline",elementid:"im-c929b2770f964f7f88505b9ee7500db9"})</script>
</div>
</div>

<div class=".for-pc">
<!-- admax -->
<script src="https://adm.shinobi.jp/s/a1cf34f40c7d6f1acda2feeee1bc3a16"></script>
<!-- admax -->
<!--
<div id="im-3b5a2348efcc4b7a9435e1334f6172f2">
  <script async src="https://imp-adedge.i-mobile.co.jp/script/v1/spot.js?20220104"></script>
  <script>(window.adsbyimobile=window.adsbyimobile||[]).push({pid:81546,mid:567718,asid:1946056,type:"banner",display:"inline",elementid:"im-3b5a2348efcc4b7a9435e1334f6172f2"})</script>
</div>
-->
</div>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading"><span id="toc5">エポック：UNIX時刻とNTP時刻</span></h2>



<p class="wp-block-paragraph">コンピューターは、時刻を「<strong>ある起点（エポック）からの経過秒</strong>」で数えます。起点は仕組みごとに違います。</p>



<figure class="wp-block-table"><table><thead><tr><th>数え方</th><th>起点（エポック）</th><th>形式</th><th>注意</th></tr></thead><tbody><tr><td>UNIX 時刻</td><td>1970-01-01 00:00:00 UTC</td><td>経過秒。うるう秒は数えない</td><td>32ビット符号付きは2038年に桁あふれ</td></tr><tr><td>NTP 時刻</td><td>1900-01-01 00:00:00 UTC</td><td>秒32ビット＋端数32ビット（約233ピコ秒刻み）</td><td>秒の欄が2036年に桁あふれ</td></tr><tr><td>Windows（FILETIME）</td><td>1601-01-01 00:00:00 UTC</td><td>100ナノ秒単位の64ビット</td><td>西暦3万年ごろまで表せる</td></tr><tr><td>GPS 時刻</td><td>1980-01-06 00:00:00 UTC</td><td>週番号＋週の中の秒</td><td>10ビットの週番号は1024週で一巡（2019年4月に2回目）</td></tr></tbody></table></figure>



<pre class="wp-block-code"><code>$ date +%s
1790407000
$ date -u -d @0
Thu Jan  1 00:00:00 UTC 1970
PS&gt; [DateTimeOffset]::UtcNow.ToUnixTimeSeconds()
1790407000
PS&gt; [DateTimeOffset]::FromUnixTimeSeconds(0).UtcDateTime
1970年1月1日 0:00:00</code></pre>



<ul class="wp-block-list">
<li>NTP時刻とUNIX時刻の差は<strong>2,208,988,800秒</strong>（70年分、うるう日17回を含む）</li>


<li>どちらも<strong>うるう秒を数えない</strong>ため、うるう秒の瞬間は同じ秒を2回数えるか、実装が前後で調整する</li>


<li>PowerShellでは<code>DateTimeOffset</code>を使うと、UTCで確実に扱える</li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading"><span id="toc6">2036年問題</span></h2>



<p class="wp-block-paragraph">NTPのタイムスタンプは、1900年1月1日からの秒を<strong>32ビットの符号なし整数</strong>で表します。表せるのは約136年分で、<strong>2036年2月7日6時28分16秒（UTC、日本時間15時28分16秒）</strong>に秒の欄が桁あふれして0に戻ります。</p>



<figure class="wp-block-image size-large"><img decoding="async" src="https://www.seichan.org/blog/wp-content/uploads/2026/09/ntp02-s018.png" alt="NTPの秒の値は0から約42.9億（2の32乗）までで、エラ0は1900-01-01から2036-02-07 06:28:16 UTCまで、エラ1はそこから2172年までで、受け取った秒の値は1914年とも2050年とも読めるため、自分の時計に近い方（±68年以内）で決め、自分の時計が2050年ごろなら2050年、RTCの電池切れで1970年に戻っていれば1914年と判断してしまうことを示す図"/></figure>



<ul class="wp-block-list">
<li>RFC 5905は、この区切りを<strong>エラ（era）</strong>と呼び、1900年からをエラ0、桁あふれ後をエラ1とする</li>


<li>パケットにはエラの番号が入らないため、受け取った側は<strong>自分の時計から今のエラを判断</strong>する。クライアントの時計がサーバーと<strong>68年以内</strong>に合っていれば、エラをまたいでも正しく計算できる</li>


<li>chronyもビルド日の前50年〜後86年に割り当てるため、現行版は2036年以降も動く</li>


<li>危ないのは、秒の値を常に1900年からとみなす<strong>古い実装や組み込み機器</strong>と、<strong>RTCの電池切れなどで大昔に戻った機器</strong></li>
</ul>



<p class="wp-block-paragraph">同じ秒の値でも、自分の時計しだいで136年違う日付になるのです。</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading"><span id="toc7">2038年問題</span></h2>



<figure class="wp-block-table"><table><thead><tr><th>対象</th><th>何が起きるか</th><th>現状と対策</th></tr></thead><tbody><tr><td>32ビット符号付きの time_t</td><td>2038-01-19 03:14:07 UTC（日本時間12:14:07）の次が1901年12月13日になる</td><td>64ビットの Linux・Windows は64ビット。32ビットの Linux はカーネル5.6・glibc 2.34 以降で64ビットを選べる</td></tr><tr><td>組み込み機器・古いアプリ</td><td>同上。中身が見えないことが多い</td><td>メーカーに対応状況を確認し、更新できない機器は計画的に入れ替える</td></tr><tr><td>ファイルシステム</td><td>更新時刻などを2038年以降にできない</td><td>ext4 は256バイトの inode なら対応。XFS は bigtime（xfsprogs 5.15 以降の既定）で2486年まで</td></tr><tr><td>データベース</td><td>MySQL の TIMESTAMP 型は2038-01-19 03:14:07 UTC まで</td><td>DATETIME 型などへの見直し</td></tr></tbody></table></figure>



<figure class="wp-block-image size-large"><img decoding="async" src="https://www.seichan.org/blog/wp-content/uploads/2026/09/ntp02-s019.png" alt="32ビット符号付きの最大値2,147,483,647は2038-01-19 03:14:07 UTCで、1秒足すと符号のビットが立って−2,147,483,648となり1901-12-13 20:45:52 UTCへ飛ぶことと、64ビットのtime_tなら約2,920億年先まで表せることを示す図"/></figure>



<pre class="wp-block-code"><code>$ date -u -d @2147483647
Tue Jan 19 03:14:07 UTC 2038
PS&gt; [DateTimeOffset]::FromUnixTimeSeconds([int]::MaxValue).UtcDateTime
2038年1月19日 3:14:07</code></pre>



<p class="wp-block-paragraph"><strong>2036年問題はNTPの時刻の形式、2038年問題はOSやアプリが内部で使うUNIX時刻の形式の問題</strong>で、別物です。有効期限が2038年を超える証明書、長期のタイマー、未来の日付の計算では、2038年より前に表面化することがあります。</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading"><span id="toc8">タイムゾーンとRTC：LinuxとWindows</span></h2>



<figure class="wp-block-table"><table><thead><tr><th>項目</th><th>Linux</th><th>Windows</th></tr></thead><tbody><tr><td>タイムゾーンの名前</td><td>tz database の Asia/Tokyo</td><td>独自の ID Tokyo Standard Time</td></tr><tr><td>確認と変更</td><td>timedatectl、timedatectl set-timezone Asia/Tokyo</td><td>Get-TimeZone、Set-TimeZone -Id &#8220;Tokyo Standard Time&#8221;（tzutil /g も可）</td></tr><tr><td>OS の中の時刻</td><td>UTC で持ち、表示のときに変換</td><td>UTC で持ち、表示のときに変換</td></tr><tr><td>RTC に書く時刻（既定）</td><td>UTC</td><td>ローカル時刻（日本なら JST）</td></tr><tr><td>RTC の扱いを変える設定</td><td>timedatectl set-local-rtc 1（systemd は非推奨）</td><td>レジストリの RealTimeIsUniversal（公式サポート外）</td></tr></tbody></table></figure>



<pre class="wp-block-code"><code>$ timedatectl
               Local time: Sat 2026-09-26 16:16:19 JST
           Universal time: Sat 2026-09-26 07:16:19 UTC
                 RTC time: Sat 2026-09-26 07:16:19
                Time zone: Asia/Tokyo (JST, +0900)
System clock synchronized: yes
              NTP service: active
          RTC in local TZ: no
PS&gt; Get-TimeZone | Select-Object Id, BaseUtcOffset
Id                  BaseUtcOffset
--                  -------------
Tokyo Standard Time      09:00:00</code></pre>



<ul class="wp-block-list">
<li>1台でWindowsとLinuxを切り替えて起動すると、Linuxが RTCに書いたUTCを、WindowsがJSTとして読むため、<strong>時計が9時間ずれる</strong>。日本は夏時間がないため、Linux側を<code>set-local-rtc 1</code>にすると実害が少なく済む</li>


<li>サーバーでは、<strong>全台のタイムゾーンをそろえる</strong>ことが重要。冒頭の「JSTとUTCが混在して9時間ずれて見える」は、ログを並べる前にどちらかへそろえて比べる</li>
</ul>


<div class=".for-sp">
<div id="im-e200ff972f7b43fe9c8c2a7b60698c08">
  <script async src="https://imp-adedge.i-mobile.co.jp/script/v1/spot.js?20220104"></script>
  <script>(window.adsbyimobile=window.adsbyimobile||[]).push({pid:81546,mid:567719,asid:1946060,type:"banner",display:"inline",elementid:"im-e200ff972f7b43fe9c8c2a7b60698c08"})</script>
</div>
</div>

<div class=".for-pc">
<!-- admax -->
<script src="https://adm.shinobi.jp/s/b379fcf4fc1a53eab29cb4ffbda7f14f"></script>
<!-- admax -->
<!--
<div id="im-4f0e910e1dca4503a73e8d9a2678879f">
  <script async src="https://imp-adedge.i-mobile.co.jp/script/v1/spot.js?20220104"></script>
  <script>(window.adsbyimobile=window.adsbyimobile||[]).push({pid:81546,mid:567718,asid:1946059,type:"banner",display:"inline",elementid:"im-4f0e910e1dca4503a73e8d9a2678879f"})</script>
</div>
-->
</div>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading"><span id="toc9">コンピューターの時計（RTCとシステムクロック）</span></h2>



<p class="wp-block-paragraph">コンピューターには<strong>2つの時計</strong>があります。</p>



<figure class="wp-block-image size-large"><img decoding="async" src="https://www.seichan.org/blog/wp-content/uploads/2026/09/ntp02-s021.png" alt="マザーボードの電池で動くRTCを起動時にOSが読み、TSCなどのカウンターの進みを時刻に換算したシステムクロックをアプリやログが使い、NTPサーバーがシステムクロックを合わせ、rtcsyncで11分ごとにRTCへ書き戻すことと、仮想マシンではRTCもカウンターも仮想のもので起動時の時刻はホストから受け取ることを示す図"/></figure>



<ul class="wp-block-list">
<li><strong>RTC（リアルタイムクロック）</strong>：マザーボード上の電池で動く時計（BIOSクロック、ハードウェアクロックとも呼ぶ）。電源を切っても動くが、精度は高くない</li>


<li><strong>システムクロック</strong>：CPUのタイムスタンプカウンター（TSC）などの進みを時間に換算して、OSが刻む時計。<strong>アプリケーションやログはこちらを使う</strong></li>


<li>起動時にOSがRTCを読んで初期値にし、以後はシステムクロックが独立して進む。<strong>NTPが合わせるのもシステムクロック</strong>で、RTCへは定期的に書き戻す（Linuxではchronyの<code>rtcsync</code>でカーネルが11分ごとに書き込む。第4回）</li>


<li>RTCの電池が切れると、起動直後の時刻が大きく狂う。仮想マシンのRTCは仮想のもので、起動時の時刻はホストから受け取る（第4回・第6回）</li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading"><span id="toc10">時刻の源</span></h2>



<p class="wp-block-paragraph">社内の時刻も、たどれば原子時計に行き着きます。</p>



<figure class="wp-block-table"><table><thead><tr><th>時刻の源</th><th>仕組み</th><th>精度の目安</th><th>使いどころ</th></tr></thead><tbody><tr><td>原子時計（セシウム・水素メーザー・ルビジウム）</td><td>原子の振動で秒を刻む</td><td>標準時の元。ルビジウムは小型で機器にも入る</td><td>NICT などの標準時の機関、GNSS が止まったときの保持</td></tr><tr><td>GNSS（GPS・みちびき等）</td><td>衛星の原子時計の時刻を受信し、受信機が 1PPS 信号を出す</td><td>1μs 以下</td><td>社内の stratum 1 サーバー、基地局、PTP のグランドマスター</td></tr><tr><td>標準電波 JJY</td><td>NICT が長波で時刻を送る。40kHz おおたかどや山（福島県）、60kHz はがね山（佐賀県・福岡県）</td><td>受信条件に左右される</td><td>電波時計、屋内で GNSS が受からない機器</td></tr><tr><td>NICT の公開 NTP（ntp.nict.jp）</td><td>日本標準時に直結した stratum 1 を公開</td><td>ネット越しで数ms〜数百ms（NICT の説明）</td><td>社内の NTP サーバーの上位（第7回）</td></tr><tr><td>公開 NTP・クラウドの時刻サービス</td><td>pool.ntp.org、各社の公開サーバー、Amazon Time Sync Service（169.254.169.123）等</td><td>環境による</td><td>第7回、連載「クラウド入門」第7回</td></tr></tbody></table></figure>



<figure class="wp-block-image size-large"><img decoding="async" src="https://www.seichan.org/blog/wp-content/uploads/2026/09/ntp02-s022.png" alt="NICTの原子時計によるUTC(NICT)から、ntp.nict.jp（stratum 1を公開）と標準電波JJY（40kHz福島・60kHz佐賀/福岡）が、GNSS衛星の原子時計からGNSS受信機（屋上アンテナ、1PPSは受信機が出力）が時刻を得て、社内のNTPサーバーや電波時計、クラウドの時刻サービスへつながることを示す図"/></figure>



<ul class="wp-block-list">
<li>日本標準時は、NICT（東京都小金井市）が複数のセシウム原子時計と水素メーザーで作るUTC(NICT)に9時間を足したもの</li>


<li><strong>1PPS</strong>は、GNSS受信機や原子時計などの機器が出力する<strong>1秒ごとのパルス</strong>で、衛星が直接出す信号ではない</li>


<li>アナログ電話回線のテレホンJJYは2024年3月末で終了し、光電話回線の光テレホンJJYが続いている</li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading"><span id="toc11">考えてみよう</span></h2>



<ol class="wp-block-list">
<li>担当サーバーのログは、UTCとJSTのどちらで記録されていますか。混在していたら、障害調査で時刻をそろえるときに何に気をつけますか。</li>


<li>職場に、2036年や2038年の桁あふれの影響を受けうるものはありますか（更新できない組み込み機器、32ビットのOS、MySQLのTIMESTAMP型など）。</li>


<li>うるう秒の調整をやめると、UTCと太陽の動き（UT1）の差はどうなりますか。システムの運用で何が楽になり、何が残りますか。</li>
</ol>



<p class="wp-block-paragraph"><strong>ヒント</strong>：この記事の関係表、うるう秒の廃止の年表、2036年問題・2038年問題の表と日付が手がかりです。<code>timedatectl</code>・<code>Get-TimeZone</code>で、実際の設定を確かめてみてください。</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading"><span id="toc12">まとめ</span></h2>



<ul class="wp-block-list">
<li>時刻には<strong>天文の時刻（UT1）</strong>と<strong>原子の時刻（TAI）</strong>がある。NTPが配るのは、TAIの秒でUT1に寄せた<strong>UTC</strong></li>


<li>TAI−UTCは<strong>37秒</strong>。JSTは<strong>UTC(NICT)＋9時間</strong></li>


<li>うるう秒は27回で、最後は2016年末。2026年10月の第28回CGPMで、廃止は<strong>2027年5月20日</strong>に前倒しされた</li>


<li>NTP時刻は1900年、UNIX時刻は1970年が起点。<strong>2036年問題（NTP）と2038年問題（UNIX時刻）は別物</strong></li>


<li>OSの中はUTC。<strong>RTCの扱いはLinux（UTC）とWindows（ローカル時刻）で違う</strong></li>


<li>NTPが合わせるのは<strong>システムクロック</strong>。社内の時刻も、たどれば<strong>原子時計</strong>に行き着く</li>
</ul>



<p class="wp-block-paragraph">次回は、NTPがネットワーク越しにどうやって時刻のずれを測り、どう直すのかを扱います。</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading"><span id="toc13">連載「NTP入門」全11回</span></h2>



<ol class="wp-block-list">
<li><a href="https://www.seichan.org/2026/10/ntp-01-why.html" target="_blank">なぜ時刻同期が必要か</a></li>


<li><strong>時刻の基礎知識（この記事）</strong></li>


<li>NTPの仕組み</li>


<li>Linuxの時刻同期（chrony）</li>


<li>Windowsの時刻同期</li>


<li>ネットワーク機器・仮想基盤</li>


<li>設計と推奨構成</li>


<li>NTPのセキュリティ</li>


<li>PTPと高精度同期</li>


<li>時刻同期のトラブルシュート</li>


<li>時刻同期の設計演習</li>
</ol>
]]></content:encoded>
					
					<wfw:commentRss>https://www.seichan.org/2026/10/ntp-02-time-basics.html/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
