CentOS7では新しく「timedatectl」というコマンドが使えるようになっています。
「date」コマンドも使用できますが、せっかくなので「timedatectl」コマンドの使用方法を覚えるために使い方をまとめてみました。
timedatectlの使い方
現在の設定表示
「timedatectl」コマンドを実行することで、現時点の「日付と時刻」「タイムゾーン設定」「NTP同期状態」等の情報を表示させることが出来ます。
# timedatectl Local time: Sat 2016-12-24 15:23:18 JST Universal time: Sat 2016-12-24 06:23:18 UTC RTC time: Sat 2016-12-24 06:23:16 Time zone: Asia/Tokyo (JST, +0900) NTP enabled: yes NTP synchronized: yes RTC in local TZ: no DST active: n/a
表示される情報
項目 | 内容 |
---|---|
Local time | TimeZoneで設定されている地域の現地時刻 |
Universal time | 協定世界時の時刻 |
RTC time | リアルタイムクロック(コンピュータに内蔵されている時計)の時刻 |
NTP synchronized | NTPの同期状態 |
RTC in local TZ | リアルタイムクロックのタイムゾーン設定 |
DST active |
夏時間の設定 夏時間の期間であれば「yes」そうでなければ「no」 夏時間の設定がないタイムゾーンの場合は「n/a 」 |
夏時間について
日本は夏時間が無いので「DST active: n/a 」となりますが、タイムゾーンを夏時間がある「America/New_York 」に設定してみて、どのように表示されるかを試してみました。
# timedatectl Local time: 火 2016-12-27 01:58:37 EST Universal time: 火 2016-12-27 06:58:37 UTC RTC time: 火 2016-12-27 06:58:38 Time zone: America/New_York (EST, -0500) NTP enabled: n/a NTP synchronized: no RTC in local TZ: no DST active: no Last DST change: DST ended at 日 2016-11-06 01:59:59 EDT 日 2016-11-06 01:00:00 EST Next DST change: DST begins (the clock jumps one hour forward) at 日 2017-03-12 01:59:59 EST 日 2017-03-12 03:00:00 EDT
2016-12-27は夏時間の時期ではないので「DST active: no 」となっています。
また、直前に終了した夏時間終了時の時刻情報と、次の夏時間開始時の時刻情報についても表示されています。
- Last DST change: DST ended at 直前の夏時間終了時の時刻情報を表示
- Next DST change: DST begins 次の夏時間開始時の時刻情報を表示
夏時間期間に日付を変更
日付を変更して夏時間の期間に設定してみると「DST active: yes 」と表示され、夏時間の期間であることが表示されます。
# timedatectl Local time: 土 2017-04-01 00:00:01 EDT Universal time: 土 2017-04-01 04:00:01 UTC RTC time: 土 2017-04-01 04:00:01 Time zone: America/New_York (EDT, -0400) NTP enabled: n/a NTP synchronized: no RTC in local TZ: no DST active: yes Last DST change: DST began at 日 2017-03-12 01:59:59 EST 日 2017-03-12 03:00:00 EDT Next DST change: DST ends (the clock jumps one hour backwards) at 日 2017-11-05 01:59:59 EDT 日 2017-11-05 01:00:00 EST
日付と時刻を設定
「timedatectl」コマンドに「set-time」オプションを指定することで、日付と時刻を設定することが出来ます。
書式
# timedatectl set-time "YYYY-MM-DD HH:MM:SS"
「YYYY-MM-DD」部分の「YYYY」は4桁の西暦で「MM」は月「DD」は日にちとなり、「HH:MM:SS」の「HH」は時間(24時間制)で、「MM」は分「SS」は秒となります。
設定例
下記は2016年12月26日15時10分に日時を設定した際の例となります。
# timedatectl set-time "2016-12-26 15:10:00"
設定後「timedatectl」コマンドで現在の日時を確認してみてください。
# timedatectl Local time: 月 2016-12-26 15:10:17 JST Universal time: 月 2016-12-26 06:10:17 UTC RTC time: 月 2016-12-26 06:10:18 Time zone: Asia/Tokyo (JST, +0900) NTP enabled: n/a NTP synchronized: no RTC in local TZ: no DST active: n/a
※日時を設定してから「timedatectl」で確認するまでに少し時間がかかったので、17秒ほど時刻は進んでいます。
年月日の設定方法
年月日だけを設定したい場合は下記書式の通り、年月日(YYYY-MM-DD)だけを指定することで設定を行うことができます。
書式
# timedatectl set-time YYYY-MM-DD
年月日だけを設定すると、時刻が「00:00:00」になってしまいますので注意してください。
設定例
年月日を2016年12月27日変更してみます。
# timedatectl set-time 2016-12-27
年月日を変更した後に「timedatectl」で確認してみると、Local timeの年月日が「2016-12-27」に変更されていることが確認できます。
時間は「00:00:01」と表示されていて、年月日を設定した際に時刻が「00:00:00」に変更されていることも確認できます。
# timedatectl Local time: 火 2016-12-27 00:00:01 JST Universal time: 月 2016-12-26 15:00:01 UTC RTC time: 月 2016-12-26 15:00:02 Time zone: Asia/Tokyo (JST, +0900) NTP enabled: n/a NTP synchronized: no RTC in local TZ: no DST active: n/a
時刻の設定
時刻だけを設定する場合は、下記書式のとおり時刻だけを指定することで設定をすることができます。
書式
「HH:MM:SS」の「HH」は時間(24時間制)となり「MM」は分「SS」は秒となります。
# timedatectl set-time HH:MM:SS
設定例
時刻は15時13分に設定してみます。
# timedatectl set-time 15:13:00
「timedatectl」で時刻が設定した値になっているかを確認することができます。
# timedatectl Local time: 火 2016-12-27 15:13:01 JST Universal time: 火 2016-12-27 06:13:01 UTC RTC time: 火 2016-12-27 06:13:02 Time zone: Asia/Tokyo (JST, +0900) NTP enabled: n/a NTP synchronized: no RTC in local TZ: no DST active: n/a
タイムゾーン変更方法
タイムゾーンの変更も「timedatectl」コマンドの「set-timezone」オプションを使用することで、タイムゾーンの設定を簡単に行うことが出来ます。
書式
# timedatectl set-timezone タイムゾーン名
タイムゾーンの一覧表示
タイムゾーン名は「list-timezones」オプションを使用することで、一覧表示させることが出来ます。
# timedatectl list-timezones Africa/Abidjan Africa/Accra Africa/Addis_Ababa Africa/Algiers Africa/Asmara Africa/Bamako Africa/Bangui 以下省略
設定例
タイムゾーンを東京にセットします。
# timedatectl set-timezone Asia/Tokyo
「timedatectl」コマンドで、タイムゾーンが「Asia/Tokyo」にセットされていることが確認できます。
# timedatectl Local time: 火 2016-12-27 15:16:52 JST Universal time: 火 2016-12-27 06:16:52 UTC RTC time: 火 2016-12-27 06:16:53 Time zone: Asia/Tokyo (JST, +0900) NTP enabled: n/a NTP synchronized: no RTC in local TZ: no DST active: n/a