UTC?時間?ってなに?

こんにちは!皆さんはUTCっていう単語を聞いたことありますか?今回は一見地味だけど絶対に知っておきたいUTC(協定世界時)について詳しく書きます!
知っておいて損はしない、なんなら役に立つ『時間』の話をしていきたいと思っています!
情報系の大学に通う大学生目線で書いていきますので、これつかえるかも!だったり、わかりやすい!と思ってくれたら嬉しいです!
また誰でもわかりやすいように1から書いていきますので最後までお付き合いください!
そもそも『時間』ってなんだろう??

「時間」と聞くとみなさんは何を思い浮かべますか?
おそらく、時計の針が進むこと、昔の自分などの過去を思い浮かべたりするひとが多いんではないでしょうか?笑
物理学の世界では時間は「空間」と同じ世にこの世界を構成する一つの次元だと考えられています。
んんむずかしいいい
過去から未来へと一方通行に進む不可逆な流れと捉えてくれれば!
でも今日の話はそんな難しい物理学の話ではありません!!!
もっと身近な「デジタル世界での時間」についてです!!
私たちがスマートフォンでSNSを開いた時、友達の投稿が正しい順序で表示されるのはなぜでしょうか?
それは投稿された時間を正確に記録して、処理を行っているからです!
もし、それぞれのスマホがバラバラな時間で動いていたら、タイムラインはぐちゃぐちゃになっちゃいますよね!
このように私たちのデジタルな生活は出来事を正しく並べたり、測ったりする「共通の時間」のルールによって支えられています。
そして、その世界共通のルールの名前がこれからお話しするUTC(協定世界時)なのです!
UTC=世界の時間の共通言語!
UTC(Coordinated Universal Time)は『協定世界時』と訳されます!
簡単に言うと、地球のどこにいても共通で使える唯一の基準となる時間のこと!
世界にはたくさんのタイムゾーン(標準時)があり、国や地域によって時間がバラバラです!
日本が朝9時のとき、アメリカはまだ夜中かもしれません…
この時間のズレがあるせいで、システム開発では思わぬトラブルが起きてしまうことがあります!
この問題を解決するために、「世界共通の物差し」としてUTCが生まれました!
UTCを使うことで、国度との時差を気にすることなく、全世界で同じ時刻を共有できるのです。
UTCは国際的な協力体制野本で、世界中の高精度な原子時計のデータを集めて調整されています。
要は、特定の国や組織だけが独自に決めているわけではない!!
具体的な仕組み
1. 世界中の原子時計:世界各国にある非常に精度の高い原子時計(日本では情報通信研究機構 NICTが保有)が、それぞれ独立した時間を刻んでいる。
2. 国際原子時(TAI):これらの原子時計から送られてくるデータを、フランスにある国際度量衡局(BIPM)と言う機関が収集、平均化して国際原子時を決定する。これは地球の自転とは関係なく、ひたすら正確に進む時間!
3. 世界時(UT1)との調整:私たちの日常生活は地球の時点に基づいているため、原子時計が刻むTAIと、地球の時点に基づく時間(世界時UT1)の間にはわずかなズレが生じる。
4. UTCの決定:このズレを調整するためにTAIに「うるう秒」を追加したり削除したりして世界時(UT1)との差が一定に範囲に収まるようにしたものがUTC
このようにUTCは世界中の機関の協力と精密な科学技術によって、非常に厳密に決定、維持されています!
そしてこのUTCを基準に日本のような各国の標準時が決められているんです!
日本はUTC+9!そしてJSTは一緒!?
UTCより9時間、日本は早く時間すすんでいるのでUCT表記だと+9と表します!!
そしてJST(Japan Standard Time)は日本標準時なのでJST=UTC+9になります!
JSTを知れるリンクを貼っておきますのでよければ踏んでみてください!
https://www.nict.go.jp/JST/JST5.html
よく混同するGMTってなに?
みなさんはGMTという言葉を聞いたことありますか?
UTCを聞いたことある人は、ギリ知ってるかなぁと思うぐらいなんですけど、
おそらくUTCと並んで時間の話で出てくることが多いです!
GMTはGreenwich Mean Time(グリニッジ標準時)の略です!
簡単にいうとイギリスのロンドンにあるグリニッジ天文台を通る本初子午線(軽度0度)を基準として
定められた時間です!
GMTについて詳しく知りたい人はこのブログで詳しく書いているのでよければ!
https://net-surfing.com/gmt-utc-kankei/↗
なぜプログラミングでUTCが重要なの?

ここからは情報系の大学に通っている人の話です!
まず「時間」はプログラミングの世界で最も厄介な問題の1つです。
そして多くの原因はタイムゾーンの扱いにあります。
私たちが作るウェブサービスやアプリは世界中のどこからアクセスされるかわかりません!
もし時間をJSTだけで処理していたら思わぬバグや混乱が起きてしまう、、、
これを防ぐためにプログラマーはUTCを使うんです!
例えば!
私が投稿したブログにアメリカの友達がコメントをしてくれたとします!
・私のPC JTS 午後10時
・友達のPC UTC-7 午前6時
タイムラインに誤差が生じる!!
この2つの時間をそのままデータベースに保存すると時間がバラバラになり、タイムラインが正しく表示されません!
これをどちらもUTCで合わせると、どの国のユーザーが見ても、その人のタイムゾーンに合わせて正しい時間で表示されます!
最後に
読者の皆様 最後までお付き合いいただきありがとうございました!
「時間」という一見あたりまえの概念が実はこんなにも奥深く、
デジタルの世界を支えていることがわかったかと思います!
最初はUTC?何それ?と思っていた人も「JST=UTC+9」という関係や
プログラミングではUTCが鉄則!
ということが知れただけで今日から時計との向き合い方が変わると思います!
いいやかわりません笑
それではまた次の投稿でお会いしましょう!
ちょっぴり小話
僕は大学に入ってプログラミングを学んだけど、プログラミング脳ができてなくてまったく身につきませんでした!
僕の専門はプログラミングではない方の情報分野だったそうです!
後期は張り切って単位をもぎとります!
ではでは!
コメント