タイムゾーンの確認と変更方法
Ubuntu 26.04 LTS Server のタイムゾーンを日本時間(JST)へ変更する手順と、時刻同期(NTP)の確認方法を解説します。
サーバーの時刻には協定世界時(UTC)で保持されている実際の時刻と、表示に使うタイムゾーンの2つがあります。タイムゾーンを変更しても内部の時刻は変わらず、表示だけが切り替わります。
現在の設定を確認する
timedatectl を引数なしで実行すると、時刻とタイムゾーンの設定がまとめて表示されます。
timedatectlkazulog@sv1:~$ timedatectl
Local time: Thu 2026-09-10 23:23:24 UTC
Universal time: Thu 2026-09-10 23:23:24 UTC
RTC time: Thu 2026-09-10 23:23:24
Time zone: UTC (UTC, +0000)
System clock synchronized: yes
NTP service: active
RTC in local TZ: no
kazulog@sv1:~$ date
Thu Sep 10 23:23:24 UTC 2026
kazulog@sv1:~$| 項目 | 内容 |
|---|---|
Local time | タイムゾーンを適用した表示上の時刻 |
Universal time | 協定世界時(UTC)での時刻。サーバーが実際に保持している時刻 |
RTC time | ハードウェアクロック(機器内蔵の時計)の時刻 |
Time zone | 設定されているタイムゾーンと UTC からの差 |
System clock synchronized | 時刻同期が完了しているか |
NTP service | 時刻同期のサービスが動作しているか |
RTC in local TZ | ハードウェアクロックをローカル時刻で持つか。Linux では no(UTC)が標準 |
タイムゾーンの一覧から選ぶ
設定できるタイムゾーンは timedatectl list-timezones で確認します。この環境では485件あります。
timedatectl list-timezones一覧は「地域/都市」の形式です。目的のものを探すときは grep で絞り込みます。
kazulog@sv1:~$ timedatectl list-timezones | wc -l
485
kazulog@sv1:~$ timedatectl list-timezones | grep Tokyo
Asia/Tokyo
kazulog@sv1:~$ timedatectl list-timezones | grep '^America/New'
America/New_York
kazulog@sv1:~$ timedatectl list-timezones | head -5
Africa/Abidjan
Africa/Accra
Africa/Addis_Ababa
Africa/Algiers
Africa/Asmaraタイムゾーンを変更する
sudo timedatectl set-timezone [TIMEZONE]| 入力箇所 | 入力内容 |
|---|---|
| [TIMEZONE] | 設定するタイムゾーン(日本時間は Asia/Tokyo) |
kazulog@sv1:~$ date
Thu Sep 10 23:23:42 UTC 2026
kazulog@sv1:~$ sudo timedatectl set-timezone Asia/Tokyo
kazulog@sv1:~$ date
Fri Sep 11 08:23:42 JST 2026
kazulog@sv1:~$ timedatectl
Local time: Fri 2026-09-11 08:23:42 JST
Universal time: Thu 2026-09-10 23:23:42 UTC
RTC time: Thu 2026-09-10 23:23:42
Time zone: Asia/Tokyo (JST, +0900)
System clock synchronized: yes
NTP service: active
RTC in local TZ: no
kazulog@sv1:~$ ls -l /etc/localtime
lrwxrwxrwx 1 root root 32 Sep 11 08:23 /etc/localtime -> ../usr/share/zoneinfo/Asia/Tokyo
kazulog@sv1:~$ cat /etc/timezone
Asia/Tokyodate の表示が9時間進み、UTC から JST に変わります。Universal time は変わっていません。表示に使うタイムゾーンだけが切り替わったためです。
変更は即座に反映され、再起動しても維持されます。ログイン中のシェルにも次のコマンドから反映されます。
設定の実体
タイムゾーンの設定は /etc/localtime のシンボリックリンクとして保存されています。変更するとリンク先が切り替わります。
上の実行例の ls -l /etc/localtime がその結果です。変更前は次のように UTC を指しています。
kazulog@sv1:~$ ls -l /etc/localtime
lrwxrwxrwx 1 root root 25 Sep 10 23:23 /etc/localtime -> ../usr/share/zoneinfo/UTC
kazulog@sv1:~$ cat /etc/timezone 2>&1
Asia/Tokyo/etc/timezone というファイルも存在しますが、こちらは timedatectl で変更しても即座には更新されないことがあります。上の実行例でも、/etc/localtime が UTC を指している時点で /etc/timezone は Asia/Tokyo のままでした。現在の設定を確認する場合は timedatectl の表示か /etc/localtime のリンク先を見てください。時刻同期(NTP)を確認する
タイムゾーンは表示の設定であり、時刻そのものを合わせるのは NTP の役割です。Ubuntu 26.04 では chrony が既定で動作します。
systemctl is-active chrony systemd-timesyncdkazulog@sv1:~$ systemctl is-active chrony systemd-timesyncd 2>&1
active
inactive
kazulog@sv1:~$ systemctl status chrony --no-pager -l | head -6 | cat
● chrony.service - chrony, an NTP client/server
Loaded: loaded (/usr/lib/systemd/system/chrony.service; enabled; preset: enabled)
Active: active (running) since Fri 2026-09-11 08:22:49 JST; 1min 3s ago
Invocation: 9941d684136d4c4588fc2c5ce8bbb390
Docs: man:chronyd(8)
man:chronyc(1)
kazulog@sv1:~$同期の状態は chronyc tracking、同期先のサーバーは chronyc sources で確認します。
chronyc tracking
chronyc sourceskazulog@sv1:~$ chronyc tracking | head -6
Reference ID : B97DBE7A (ntp-nts-2.ps5.canonical.com)
Stratum : 3
Ref time (UTC) : Thu Sep 10 23:23:03 2026
System time : 0.000019870 seconds fast of NTP time
Last offset : -0.017891990 seconds
RMS offset : 0.017891990 seconds
kazulog@sv1:~$ chronyc sources
MS Name/IP address Stratum Poll Reach LastRx Last sample
===============================================================================
^* ntp-nts-2.ps5.canonical.> 2 6 17 51 +21ms[+2725us] +/- 119ms
^+ ntp-nts-3.ps5.canonical.> 2 6 17 51 +17ms[-1165us] +/- 115ms
^+ ntp-nts-2.ps6.canonical.> 2 6 17 52 -27ms[ -45ms] +/- 162ms
^+ ntp-nts-3.ps6.canonical.> 2 6 17 53 -27ms[ -45ms] +/- 151ms
^- ntp-nts-1.ps5.canonical.> 2 6 17 53 +17ms[ -809us] +/- 118ms| 項目 | 内容 |
|---|---|
Reference ID | 同期先のサーバー |
Stratum | 基準となる時計からの距離。小さいほど正確 |
System time | NTP の時刻とのずれ |
chronyc sources の ^* | 現在同期しているサーバー。^+ は候補、^- は除外中 |
timedatectl の System clock synchronized: yes も、同期が完了していることを示します。
ログの時刻はタイムゾーンに従う
journalctl が表示するログの時刻は、設定されているタイムゾーンに変換されて表示されます。journal は内部的に UTC で記録しているため、--utc を付けると UTC のまま表示できます。
sudo journalctl --utckazulog@sv1:~$ sudo journalctl -u chrony -n 3 --no-pager | cat
Sep 11 08:23:00 sv1 chronyd[1089]: System clock wrong by 1.102775 seconds
Sep 11 08:23:01 sv1 chronyd[1089]: System clock was stepped by 1.102775 seconds
Sep 11 08:23:01 sv1 chronyd[1089]: System clock TAI offset set to 37 seconds
kazulog@sv1:~$ sudo journalctl -u chrony -n 3 --no-pager --utc | cat
Sep 10 23:23:00 sv1 chronyd[1089]: System clock wrong by 1.102775 seconds
Sep 10 23:23:01 sv1 chronyd[1089]: System clock was stepped by 1.102775 seconds
Sep 10 23:23:01 sv1 chronyd[1089]: System clock TAI offset set to 37 seconds同じイベントが9時間差で表示されています。複数のサーバーのログを突き合わせるときは、どちらの時刻で表示しているかに注意してください。
UTC のまま運用する場合
複数の地域にまたがるシステムでは、サーバーを UTC のまま運用し、表示する側で変換する構成も一般的です。UTC に戻す場合も同じコマンドを使います。
sudo timedatectl set-timezone UTCkazulog@sv1:~$ sudo timedatectl set-timezone UTC
kazulog@sv1:~$ date
Thu Sep 10 23:24:17 UTC 2026
kazulog@sv1:~$ sudo timedatectl set-timezone Asia/Tokyo
kazulog@sv1:~$ date
Fri Sep 11 08:24:17 JST 2026
kazulog@sv1:~$ timedatectl show
Timezone=Asia/Tokyo
LocalRTC=no
CanNTP=yes
NTP=yes
NTPSynchronized=yes
TimeUSec=Fri 2026-09-11 08:24:17 JST
RTCTimeUSec=Fri 2026-09-11 08:24:17 JSTtimedatectl show は、設定値を機械的に扱いやすい形式で表示します。スクリプトから現在のタイムゾーンを取得する場合に使えます。
構築時に設定する
サーバーの構築時にタイムゾーンを設定しておく方法もあります。cloud-init を使う環境では、設定に1行加えるだけで初回起動時に適用されます。詳細は初期設定を自動化する(cloud-init)で解説しています。
timezone: Asia/Tokyo検証環境と実行ログ
本記事の実行例は、CML 上の Ubuntu 26.04 LTS Server で採取したものです。各手順の実行ログを以下からダウンロードできます。
| 手順 | 実行ログ |
|---|---|
| 初期状態(UTC)の確認 | log |
| タイムゾーンの一覧 | log |
| Asia/Tokyo への変更 | log |
| 時刻同期(chrony)の確認 | log |
| ログの時刻表示の比較 | log |
| UTC への変更と復帰 | log |
参考リンク
timedatectl(1) - systemd documentation
関連記事
- Ubuntu 26.04 LTS Server のホスト名の変更(hostnamectl)
- Ubuntu 26.04 LTS Server のパッケージ更新(apt update / upgrade)
- Ubuntu 26.04 LTS Server のタイムゾーン設定と時刻同期
- Ubuntu 26.04 LTS Server のユーザー作成と sudo 権限の設定
- Ubuntu 26.04 LTS Server の SSH サーバー設定(公開鍵認証)
- Ubuntu 26.04 LTS Server の telnet サーバー設定
- Ubuntu 26.04 LTS Server の inetd(スーパーサーバー)設定
- Ubuntu 26.04 LTS Server の TFTP サーバー設定(tftpd-hpa)
- Ubuntu 26.04 LTS Server の FTP サーバー設定(vsftpd)
- Ubuntu 26.04 LTS Server の syslog サーバー設定(rsyslog)
- Ubuntu 26.04 LTS Server のサービス管理(systemctl)とログ確認(journalctl)
- Ubuntu 26.04 LTS Server の自動更新設定(unattended-upgrades)
- Ubuntu 26.04 LTS Server の初期設定を自動化する(cloud-init)
- Ubuntu 26.04 LTS Server のカーネルパラメータ設定(sysctl)
- Ubuntu 26.04 LTS Server のネットワーク設定(Netplan)
- Ubuntu 26.04 LTS Server の名前解決設定(systemd-resolved)
- Ubuntu 26.04 LTS Server の NTP 同期先の変更(chrony)
- Ubuntu 26.04 LTS Server のスタティックルート設定(Netplan)
- neovim 公式サイトから最新バージョンをインストールする手順 Ubuntu 26.04 LTS Server