timedatectlで表示される「Local time」を手動で変更したい

通常、NTP(Network Time Protocol)を使用して自動的時刻同期を行うべきですが、現在時刻とデータベースの保存したデータを比較して抽出するなど、一時的なテストや特別な状況のために時刻を手動で変更することがあります。
今回はLinuxUbuntu)のtimedatectlコマンドを使用して「Local timeローカルタイム)」を手動で変更する方法をご紹介します。

timedatectlコマンドを使ってローカルタイムを変更することは、正確な時刻同期が必要なシステムではお勧めしません。

Local timeの確認と手動設定

それでは、ローカルタイムを変更していきましょう。
ローカルタイムを手動で変更するには、sudo権限を持つユーザーアカウントでコマンドを実行します。

現在のLocal timeを確認

ターミナルを開き、以下のコマンドを実行して現在のローカルタイムを確認します。

timedatectl

このコマンドでは、以下のように現在の「Local time」の他に、タイムゾーン時刻同期の状況なども出力されます。

Local time: 土 2023-12-09 12:43:09 JST
           Universal time: 土 2023-12-09 03:43:09 UTC
                 RTC time: 土 2023-12-09 03:43:09
                Time zone: Asia/Tokyo (JST, +0900)
System clock synchronized: yes
              NTP service: active
          RTC in local TZ: no

以前ご紹介した日本時間のタイムゾーンの設定はこちらから。

ローカルタイムを変更する

ローカルタイムを変更する際も同じくtimedatectlを使用します。
YYYY-MM-DD HH:MM:SSの部分を変更して新しい日時を指定します。

timedatectl set-time 'YYYY-MM-DD HH:MM:SS'

例えば、2023年12月9日の午後3時30分30秒に設定する場合は、以下のようにコマンドを実行します。

sudo timedatectl set-time '2023-12-09 15:30:30'

新しいローカルタイムが設定されました。
再びtimedatectlコマンドを実行して、変更が反映されていることを確認します。
出力に新しい日時が表示されるはずです。

設定しながらリアルタイムで確認したい場合は、ターミナルをもう1つ立ち上げて以下を試してください。

再度言いますが、通常の運用では自動的な時刻同期を使用することが推奨されます。
手動で時刻を変更した後は、システムが正確な時刻を維持するために適切な対処を行ってください。

Local timeを変更できない場合

上記の通り、ローカルタイム変更したのに戻ってしまう場合は、時刻同期が有効になっている可能性がありますので、以下の手順を試してみてください。

時刻同期を停止する

ターミナルを開き、次のコマンドを実行して自動的な時刻同期を停止します。

systemctl stop systemd-timesyncd

または、最近よく使われているsystemd-timesyncdではなく、昔からあるntpサービスを利用している場合は以下のコマンドを実行してください。

systemctl stop ntp

これでLocal timeが変更されるはずです。
以上、お疲れ様でした!

\楽天ポイント5倍セール!/
楽天市場
著:うすだ ひさし
¥2,475 (2023/12/09 17:17時点 | Amazon調べ)
\楽天ポイント5倍セール!/
楽天市場


Amazonベストセラー

返信を残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA