Open2
UTCとは? UTCと日本時間の計算📝

そもそもUTCとは?
UTC:Universal time coordinated(協定世界時)の略。
現在、世界で基準とされており、精度の高い原子時計と天体観測に基づいて決められた時間のことです。
1. 定義
- UTCは、地球の自転に基づく時刻ではなく、原子時計による高精度な時間(国際原子時)を基に調整されたものです。
- グリニッジ標準時(GMT)に代わるものとして使われることが多いですが、厳密にはGMTとは異なり、より科学的で正確です。
2. 特徴
- タイムゾーンの基準: UTCはタイムゾーンが「UTC±0」であり、世界各地の時刻はこのUTCを基準に「+」または「-」で表されます。例えば、日本時間(JST)はUTC+9です。
- 夏時間なし: UTC自体には夏時間(DST)の概念がなく、常に一定です。地域ごとの時刻調整は各タイムゾーンで対応します。
- 24時間表記: 00:00から23:59までで表され、例えば「2025-03-28 14:00 UTC」はUTCでの午後2時を意味します。
3. 使われる場面
- 国際的な通信やシステム: 航空、IT、科学研究など、国をまたぐ場面で時刻のズレを防ぐために使われます。
- データベースやプログラミング: 時刻を統一的に管理するため、UTCで保存し、表示時にローカル時間に変換するのが一般的です。
4. 具体例
- UTCが「2025-03-28 10:00」の場合:
- 日本時間(JST, UTC+9): 19:00(同日)
- ニューヨーク時間(EST, UTC-5): 05:00(同日)
要するに、UTCは「世界の時計の基準」で、地域ごとの時刻を計算する際のスタート地点と考えればOKです!何か具体的な質問があれば、さらに掘り下げますよ。
GMTとは?
GMT:Greenwich Mean Time(グリニッジ標準時)の略。
昔、世界で基準とされていた、天体観測(地球の自転)に基づいて決められた時間のことです。
英国にあるグリニッジ天文台が基準とされたことから、GMT(Greenwich mean time)と呼ばれています。
JSTとは?
JSTとは「日本標準時」(Japan Standard Time)の略。

UTCと日本時間(JST)の時刻計算を行う場合
UTCと日本時間(JST)の時刻計算を行う場合、日本はUTC+9時間であることを利用します。
以下に具体的な計算方法を説明します。
1. UTCから日本時間(JST)への変換
UTC時刻に9時間を足すと日本時間が得られます。
- 計算式: JST = UTC + 9時間
-
例:
- UTCが「2025-03-24 14:00」の場合
→ 14:00 + 9時間 = 23:00
→ 日本時間は「2025-03-24 23:00」。
- UTCが「2025-03-24 14:00」の場合
2. 日本時間(JST)からUTCへの変換
日本時間から9時間を引くとUTCが得られます。
- 計算式: UTC = JST - 9時間
-
例:
- 日本時間が「2025-03-24 10:00」の場合
→ 10:00 - 9時間 = 01:00
→ UTCは「2025-03-24 01:00」。
- 日本時間が「2025-03-24 10:00」の場合
3. データベースでの実装方法
データベースで時刻を扱う場合、以下のポイントに注意してください:
- UTCで保存する: 一般的に、DBでは時刻をUTCで統一して保存するのがベストプラクティスです。表示時にユーザーのタイムゾーン(この場合はJST)に変換します。
-
タイムゾーン対応関数を使う:
-
PostgreSQL:
AT TIME ZONE
を使う- UTC → JST:
SELECT timestamp '2025-03-24 14:00:00 UTC' AT TIME ZONE 'Asia/Tokyo';
→ 23:00 - JST → UTC:
SELECT timestamp '2025-03-24 23:00:00 JST' AT TIME ZONE 'UTC';
→ 14:00
- UTC → JST:
-
MySQL:
CONVERT_TZ
を使う-
SELECT CONVERT_TZ('2025-03-24 14:00:00', 'UTC', 'Asia/Tokyo');
→ 23:00
-
- SQLite: タイムゾーン関数が標準でないので、手動で9時間を加減算する必要があります。
-
PostgreSQL:
4. 注意点
- 夏時間(DST): 日本には夏時間がないので、UTCとの差は常に+9時間で固定です。他の地域を扱う場合はDSTの有無を確認してください。
- 日付の繰り越し: 時間を加減算する際に日付が変わることがあります。例えば、UTC「2025-03-24 20:00」に9時間足すとJST「2025-03-25 05:00」になります。
具体的なコードや状況があれば教えてください。さらに詳しくサポートします!