server-memo.net

CentOS7 タイムゾーン・時刻・日付の設定方法

   

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

 - CentOS7