こんにちは、フルスタックエンジニアのryuです。
Linuxサーバーの時刻がずれている。日本時間ではなく、UTCで表示されている。
そんなとき、どのコマンドを使えばよいのか迷いませんか。
現在のLinuxでは、時刻やタイムゾーンの状態をまとめて確認するときにtimedatectlを使うのが分かりやすいです。
この記事では、Linuxの時刻確認、タイムゾーン変更、手動設定、NTP同期の確認方法を初心者向けに解説します。
Linuxの時刻を確認する¶
Linuxの現在時刻は、dateコマンドで確認できます。
date
実行結果は、次のようになります。
Tue Jul 14 10:30:00 JST 2026

表示される主な内容は、曜日、日付、時刻、タイムゾーン、年です。
JSTと表示されていれば、日本標準時で表示されています。
時刻だけを見やすく表示することもできます。
date '+%Y-%m-%d %H:%M:%S %Z'
実行結果は以下の通りです。
2026-07-14 10:30:00 JST
ログの調査や障害対応では、サーバーの現在時刻を最初に確認することがあります。
ログに書かれている時刻と実際の時刻がずれていると、障害が発生した時間帯を間違えてしまうからです。
timedatectlで時刻設定をまとめて確認する¶
systemdを使っているLinuxでは、timedatectlを実行すると、時刻に関する情報をまとめて確認できます。
timedatectl
実行すると、次のような情報が表示されます。
Local time: Tue 2026-07-14 10:30:00 JST
Universal time: Tue 2026-07-14 01:30:00 UTC
RTC time: Tue 2026-07-14 01:30:00
Time zone: Asia/Tokyo (JST, +0900)
System clock synchronized: yes
NTP service: active
RTC in local TZ: no
最初は項目が多く、少し分かりにくいですよね。
主な項目を整理すると、以下の通りです。
| 項目 | 意味 |
|---|---|
| Local time | 現在のタイムゾーンで表示した時刻 |
| Universal time | UTCで表示した時刻 |
| RTC time | ハードウェアクロックの時刻 |
| Time zone | 設定されているタイムゾーン |
| System clock synchronized | システム時刻が同期されているか |
| NTP service | NTP同期サービスの状態 |
時刻がずれているときは、dateだけでなくtimedatectlの結果も確認しましょう。
Linuxのタイムゾーンを日本時間へ変更する¶
タイムゾーンがUTCになっている場合は、日本時間のAsia/Tokyoへ変更します。
まず、現在のタイムゾーンを確認します。
timedatectl
利用できるタイムゾーンを検索したい場合は、以下のコマンドを使います。
timedatectl list-timezones | grep Tokyo
Asia/Tokyoが表示されたら、次のコマンドで変更します。
sudo timedatectl set-timezone Asia/Tokyo
変更後に、もう一度確認します。
timedatectl
date
Time zone: Asia/TokyoやJSTと表示されていれば変更できています。
tzselectでタイムゾーンを探す方法¶
tzselectを使い、地域を選択しながらタイムゾーン名を調べることもできます。
tzselect

元記事の画像は、tzselectで地域を選択している画面です。
ただし、tzselectは選択したタイムゾーン名を確認するためのコマンドです。システム全体の設定変更には、timedatectl set-timezoneを使う方が分かりやすいです。
Linuxの時刻を手動で変更する¶
通常のサーバーでは、NTPを使って自動的に時刻を同期します。
それでも、検証環境やネットワークへ接続できない環境で、時刻を手動設定したい場合があります。
systemdを使っている環境では、次のように変更できます。
sudo timedatectl set-time '2026-07-14 10:30:00'
ただし、NTP同期が有効な状態では、手動設定に失敗することがあります。
その場合は、NTP同期を一時的に無効にします。
sudo timedatectl set-ntp false
sudo timedatectl set-time '2026-07-14 10:30:00'
確認後、必要に応じてNTP同期を戻します。
sudo timedatectl set-ntp true
dateコマンドで変更する方法¶
dateコマンドでもシステム時刻を変更できます。
sudo date -s '2026-07-14 10:30:00'
実行後は、dateで確認します。
date
ただし、NTP同期が有効な場合は、あとから正しい時刻へ自動修正されます。
現在のLinuxでは、状態確認やタイムゾーン変更もまとめて行えるtimedatectlを先に覚えるとよいでしょう。
システムクロックとハードウェアクロックの違い¶
Linuxには、システムクロックとハードウェアクロックがあります。
システムクロックは、Linuxが起動している間に使用する時刻です。
ハードウェアクロックはRTCとも呼ばれ、サーバーの電源が切れている間も時刻を保持します。
| 時計 | 役割 |
|---|---|
| システムクロック | 起動中のLinuxが使用する時刻 |
| ハードウェアクロック | 電源停止中も保持される時刻 |
ハードウェアクロックは、hwclockで確認できます。
sudo hwclock --show
システムクロックの時刻をハードウェアクロックへ反映する場合は、以下のコマンドを使います。
sudo hwclock --systohc
反対に、ハードウェアクロックの時刻をシステムクロックへ反映する場合は、以下の通りです。
sudo hwclock --hctosys
クラウドの仮想サーバーなどでは、ハードウェアクロックを直接意識する場面は多くありません。
まずはシステム時刻、タイムゾーン、NTP同期の状態を確認できるようにしましょう。
NTPで時刻を自動同期する¶
サーバーの時刻は、手動で合わせ続けるのではなく、NTPを使って自動同期するのが基本です。
NTPは、ネットワーク上の時刻サーバーと時刻を合わせる仕組みです。
元記事ではntpdateを使っていましたが、現在の環境ではchronyやsystemd-timesyncdなどの常駐サービスを使うことが多くなっています。
NTPの仕組みについては、NTPとは?時刻同期の仕組みを解説も参考にしてください。
timedatectlで同期状態を確認する¶
まずは、NTP同期が有効か確認します。
timedatectl
次の2項目を確認してください。
System clock synchronized: yes
NTP service: active
NTPサービスを有効にする場合は、以下のコマンドを使えます。
sudo timedatectl set-ntp true
ただし、実際に使用される同期サービスはLinux環境によって異なります。
chronyを使用している環境では、次のコマンドも確認しましょう。
chronyの同期状態を確認する¶
RHEL系のLinuxなどでは、時刻同期にchronydがよく使われます。
サービスの状態を確認します。
systemctl status chronyd
Ubuntuなど、サービス名がchronyの環境では以下を確認します。
systemctl status chrony
同期状態は、chronyc trackingで確認できます。
chronyc tracking
NTPサーバーの一覧と状態を確認する場合は、以下のコマンドを使います。
chronyc sources -v
参照中のサーバーには、通常^*が表示されます。
時刻のずれが大きく、すぐに補正したい場合は、運用ルールを確認したうえで次のコマンドを使うことがあります。
sudo chronyc makestep
時刻が急に変わると、アプリケーションやログへ影響する可能性があります。
本番サーバーでは、影響を確認してから実行してください。
NTPサーバーの構築については、LinuxでNTPサーバーを設定する方法で解説しています。
Linuxの時刻がずれるときの確認方法¶
時刻が合わない場合は、やみくもに手動変更するのではなく、次の順番で確認します。
dateで現在時刻を確認するtimedatectlでタイムゾーンを確認する- NTP同期が有効か確認する
chronyc trackingやsources -vを確認する- NTPサーバーへ通信できるか確認する
- 仮想環境やホストOS側の時刻同期も確認する
例えば、時刻そのものは合っているのに、9時間ずれて見える場合があります。
この場合は、時刻ではなくタイムゾーンがUTCになっている可能性があります。
一方、数秒から数分ずつずれていく場合は、NTP同期サービスや接続先を確認します。
Linuxの時刻設定まとめ¶
Linuxの現在時刻は、dateで確認できます。
date
時刻、タイムゾーン、NTP同期の状態をまとめて確認する場合は、timedatectlを使います。
timedatectl
日本時間へ変更する場合は、以下の通りです。
sudo timedatectl set-timezone Asia/Tokyo
サーバーの時刻は、手動で設定するよりNTPで自動同期するのが基本です。
私も障害調査をするときは、ログを見る前にサーバー時刻を確認することがあります。
サーバーごとに時刻がずれていると、どの処理が先に起きたのか判断できなくなるからです。
コマンドだけを覚えるのではなく、システム時刻、タイムゾーン、NTP同期を分けて確認できるようにしましょう。
Linuxの時刻設定を実際に学びたい方へ¶
Linuxの時刻設定は、サーバーの初期設定や運用で必要になる知識です。
InfraAcademyでは、ブラウザ上のLinux環境でコマンドを実行しながら学習できます。
Linuxの基本操作を学びたい方は、Linux入門講座を確認してみてください。
