新人エンジニアにやさしく解説!「Unix標準時(UTC)」とは?

こんにちは。ゆうせいです。
今日は、システム開発の基礎中の基礎ともいえる「Unix標準時」について、はじめてのエンジニアでもしっかり理解できるように、図やたとえを交えながら丁寧に解説していきます!
Unix標準時って何?ざっくり言うと…
まずは一言で言いましょう。
Unix標準時(UTC)とは、1970年1月1日0時0分0秒(協定世界時)を起点とする時刻の数え方のことです。
ここで出てくる 「協定世界時(UTC)」 は、世界中の時計を合わせるための基準時刻です。日本時間(JST)はこのUTCより9時間進んでいます。
なぜUnix標準時が必要なの?
例えば、次のようなことを考えてみてください。
Aさんが東京、Bさんがニューヨークにいて、それぞれ同じWebサービスを使っているとします。ログに「2025年5月18日 10:00」とだけ書いてあったら、それが東京の10時なのか、ニューヨークの10時なのかわからないですよね?
このような混乱を防ぐために、世界中で共通の「時刻のものさし」が必要になるのです。それがUnix標準時!
Unix時間(Unix Time / Epoch Time)とは?
実は、Unix標準時というときは、しばしば 「Unix時間」(あるいは「エポックタイム」)を指すことがあります。
これは以下のように定義されます。
数式で表すと…
Unix時間 = 現在のUTC時刻 − 1970年1月1日0時0分0秒(UTC)
言葉にすると:
「1970年1月1日0時0分0秒から何秒経ったか」を数値で表したもの
例:2025年5月18日 00:00:00(UTC)のUnix時間は?
date -d '2025-05-18 00:00:00 UTC' +%s
# => 1747526400
つまり、この時点では「17億4752万6400秒経っている」ことになります。
メリットとデメリット
メリット | デメリット |
---|---|
世界中で統一した時刻管理ができる | 人間にとって読みにくい(秒数だけなので) |
タイムゾーンの違いを吸収できる | 閏秒(うるうびょう)によるズレ問題がある |
コンピュータにとって処理しやすい | 日付として直感的に分かりにくい |
たとえ話で理解しよう!
「Unix時間ってなにそれ?」とよく聞かれますが、こう説明するとイメージしやすくなります。
たとえば…ストップウォッチ!
1970年1月1日を「ストップウォッチのスタート」と考えてください。
今この瞬間のUnix時間は、ストップウォッチで測った「経過秒数」なんです。
よく使うコマンド
Unix時間を扱うとき、次のコマンドはエンジニアの必須ツールです!
# 現在のUnix時間を取得
date +%s
# 任意の日時をUnix時間に変換
date -d "2025-05-18 10:00:00" +%s
# Unix時間を人間が読める形式に変換
date -d @1747526400
図で理解しよう!
以下の図で、Unix標準時の仕組みを視覚的に理解しましょう。
(図:Unix時間のタイムライン)
→ このあとイラストで生成します!
最後に:次に学ぶべきこと
Unix標準時を理解したら、次に学んでほしいのは以下のテーマです:
- タイムゾーン(JST、UTC、PSTなど)の扱い方
- NTP(Network Time Protocol)による時計の自動同期
- ログの時刻表示の形式(ISO 8601 形式など)
- タイムスタンプの扱い方(DBとの連携時など)
どれも現場で「知らないと困る!」という知識ばかりです。焦らず一歩ずつ身につけていきましょう!
セイ・コンサルティング・グループの新人エンジニア研修のメニューへのリンク
投稿者プロフィール

- 代表取締役
-
セイ・コンサルティング・グループ株式会社代表取締役。
岐阜県出身。
2000年創業、2004年会社設立。
IT企業向け人材育成研修歴業界歴20年以上。
すべての無駄を省いた費用対効果の高い「筋肉質」な研修を提供します!
この記事に間違い等ありましたらぜひお知らせください。
最新の投稿
山崎講師2025年5月19日Javaリフレクションとは?新人エンジニア向けにやさしく解説!
山崎講師2025年5月19日新人エンジニアにやさしく解説!「Unix標準時(UTC)」とは?
山崎講師2025年5月19日ER図設計における「依存」と「非依存」はSQLにどう関係するのか?
山崎講師2025年5月18日SQL初心者がやりがち!知らずに書いてるアンチパターン10選と改善法