Linux / コマンド / timedatectl - タイムゾーンと時間同期状態の管理

timedatectlは、systemdシステムの現在の時刻、タイムゾーン、ハードウェアクロック、およびネットワーク時刻同期の状態を確認します。必要に応じて、タイムゾーンや同期設定も変更できます。

OSが使うシステム時刻と、ハードウェア側のリアルタイムクロック(RTC)は別の時計です。UTCは協定世界時、NTP(Network Time Protocol)はネットワーク経由の時刻同期方式です。同期サービスが稼働していることと、同期済みと報告されることも区別します。statusでローカル・UTC時間、タイムゾーン、同期状態を一緒に確認してください。同期提供サービスやポリシーはディストリビューションによって異なることがあるため、表示状態のみでネットワーク全体の接続状況を断定しないでください。

基本的な文法

timedatectl [コマンド] [引数]

インストールされている実装とオプションは、配布版によって異なる場合があります。man timedatectlで現在のシステムの説明を確認してください。

使用例

時間と同期状態

systemd-timedatedと通信できるローカル環境で、現在のタイムゾーンとNTP同期の表示を確認します。

timedatectl status

利用可能なタイムゾーンを探す

設定前に正確なタイムゾーン名を確認します。

timedatectl list-timezones

タイムゾーンの変更

変更前の timedatectl status にあるタイムゾーンを記録します。Asia/Seoul は例なので、一覧にある運用先の地域へ置き換え、管理権限で設定します。表示だけを一時的に変える用途には dateのTZ指定 も使えます。

sudo timedatectl set-timezone Asia/Seoul

タイムゾーンと同期状態を読み取る

timedatectlはローカル時間、UTC時間、タイムゾーン、NTP同期状態を一緒に表示します。以下は設定を変更せず、タイムゾーンと同期状態だけを照会するコマンドです。

timedatectl show -p Timezone -p NTPSynchronized

例の出力:

Timezone=Asia/Seoul
NTPSynchronized=yes

NTPSynchronized=yesはシステムが時間を同期状態として報告していることを意味しますが、すべてのネットワーク時間サーバーが正常であるという完全な診断ではありません。項目がない場合やnoの場合は、ディストリビューションの時間同期サービスとネットワーク状態を確認してください。タイムゾーンを変更すると表示が変わりますが、UTC基準の絶対時間自体は変更されません。

主なオプションと形式

オプション・形式 説明
status 現在の時刻と時間設定を表示します。
list-timezones 設定可能なタイムゾーン名を一覧表示します。
set-timezone 領域/都市 システムのタイムゾーンを変更します。
set-ntp true|false trueなら利用可能な既知の時刻同期サービスを一つ有効化・起動し、falseなら既知の同期サービスを無効化・停止します。利用環境での対応を確認します。
show 設定属性を機械判読形式で表示します。

使用する際の注意点

タイムゾーンの変更はログ表示や予約作業の解釈に影響を与える可能性があります。set-timeで時計を直接調整すると同期サービスと衝突するおそれがあるため、まずNTPの状態を確認してください。変更後、timedatectl statusで結果を検証し、元に戻す場合は sudo timedatectl set-timezone 元のタイムゾーン として、記録した値を設定し直して確認します。RTCをローカル時刻として保持する設定ではRTC側の値の調整も関わるため、RTCの設定も併せて確認してください。

よくある質問

タイムゾーンだけを変えると、実際の時刻も変わりますか?

同じ時刻を表示するローカル時刻表現が変わります。UTC基準の実際の時刻を変更する操作とは異なります。

公式ドキュメント

オプションの正確な動作や実装ごとの違いは、timedatectlに関する公式ドキュメントで確認できます。