新人エンジニアにやさしく解説!「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年以上。
すべての無駄を省いた費用対効果の高い「筋肉質」な研修を提供します!
この記事に間違い等ありましたらぜひお知らせください。