GMTとUTCの違い

Microsoft365のPowerAutomateでも、JavaScriptであっても、プログラミング要素が出てくると時刻を伴う処理に接することが必ず出てきます。プログラミングではなかったとしても、インフラよりの視点でログを確認するときも、機器の設定や、サービスの設計(特に海外のクラウドサービスなど)によっては、ログの時間が日本時間ではない場合があり、「なぜこんな時間にエラーが出ているのだ?」と悩む場合も少なくありません。また、日本の時間と何時間差だっけ?とかすぐに出てこなかったりもします。

そもそも、そんなときに出てくる「GMT」や「UTC」ってぱっと説明できなかったりします。そんなわけで、ちょこちょこ出てくるGMTとUTCについて、その違いを簡単に整理してみました。

世界時と原子時とUTC

まず、時間には、世界時と原子時という2つの時間が存在しています。

世界時とは

世界時というのは、 天文観測に基づきイギリスのグリニッジを基準にした世界で共通の時間UT(Universal Time)と呼ばれており、GMT(Greenwich mean time:グリニッジ平均時)はグリニッジ(経度0度)を正午の基準としている時間で、一般的な意味合いではUTとほぼ同じです。UT=GMT

分かりやすい反面、世界時は、ある特定の場所(グリニッジ)の時計を基準にしているため、地球の自転の影響を受けてしまいます。

原子時とは

対して原子時というのは、セシウム原子(今回は割愛)を使った時計、要するに年単位でみてもほとんどずれることのない時計が刻んでいる時間をさしています。

基準時計として最も安定した原子時計が採用され、1958年1月1日0時0分0秒の世界時を原点としてスタートしたのが国際原子時です。

UTCとうるう秒

ところが、 地球の自転の影響を被る世界時と、かなり精密な国際原子時との間にはどうしても誤差が生じます。なので、この誤差を”うるう秒”として調整したのがUTC(協定世界時:Coordinated Universal Time)で、地球での日常生活の基準になっている時間はこのUTCということになります。

うるう秒はその誤差に合わせて調整が行われます。数年に一度(1月1日か7月1日)調整が行われます。こんなニュース見たことないでしょうか?

定刻に処理するシステムの場合、普通の時計に存在しないこの1秒とかでトラブることもあるので、エンジニアは結構ひやひやしてその日を迎えたり事前に対応したりしています。

GMTとUTCの差と日本時間への変換

というわけでうるう秒の調整直後であれば、GMTとUTCも≒ではあるとも言えますが、厳密には少しずつ差が生じます。この差分をどのくらい厳密に考えて扱うかは目的次第かと思います。数秒くらいは関係ないというなら基本的にはGMT=UTCのような考え方で利用しても影響はあまり発生しないはずです。

つまり厳密さを求めないシステムのドキュメントやログなどで「GMT」と書かれていても「UTC」と書かれていても日本時間(JST)にしたいのであれば、単純に+9時間として考えても問題になることは少ないと思います。

日本時間(JST)へするには

最後に日本標準時(JST)ですが、これは「東経135度の明石」として小学校のとき習ったと思います。GMTにプラス9時間、もしくはUTCにプラス9時間ということで、GMT+9、UTC+9と記載されています。この2つのどちらがいいの?というのはあると思いますが、以前はGMT+9が主流だったが、近年はUTC+9が主流になっている様子です。

いずれにしても日常生活くらいのレベルであれば、以下を覚えておけば問題ないはず。

・GMT≒UTC
・JST=UTC+9

頻繁に時間を扱っていると当たり前になるが、たまにしか扱わないと分からなくなることなので、日付・時間を扱う場合には、意識すると良いかと思います。

コメント

タイトルとURLをコピーしました