BeagleBoneGreenのタイムゾーンを変更する

#時間の確認

タイムゾーンは初期設定はUTCであるため、時刻を表示すると日本時間から9時間ずれた時刻が表示される。

```
$ date
Mon Mar 11 11:47:15 UTC 2019
```
```
$ timedatectl
      Local time: Mon 2019-03-11 11:52:48 UTC
  Universal time: Mon 2019-03-11 11:52:48 UTC
        RTC time: Mon 2019-03-11 11:52:49
       Time zone: Etc/UTC (UTC, +0000)
 Network time on: yes
NTP synchronized: yes
 RTC in local TZ: no
```
#タイムゾーン設定
タイムゾーン設定を変更することで日本標準時を標準とすることができる。
タイムゾーン設定は以下の2つで管理されている。
- /etc/timezone
- /etc/localtime

それぞれ確認すると、

```
$ ls -l /etc/localtime
lrwxrwxrwx 1 root root 27 Oct  7 16:27 /etc/localtime -> /usr/share/zoneinfo/Etc/UTC
$ cat /etc/localtime
TZif2UTCTZif2・TC
UTC0
```
/etc/localtimeは/usr/share/zoneinfo/Etc/UTCへのシンボリックリンクとなっており中身はよくわからない文字列とUTC0という文字列。

```
$ ls -l /etc/timezone
-rw-r--r-- 1 root root 8 Oct  7 16:27 /etc/timezone
$ cat /etc/timezone
Etc/UTC
```
/etc/timezoneはEtc/UTCと書かれているのみ。

#タイムゾーン一覧
/usr/share/zoneinfo/にはタイムゾーンの設定値が格納されている。ディレクトリの階層になっていたり、シンボリックリンクになっていたりするものもある。

```
$ ls /usr/share/zoneinfo/
Africa      Cuba     GMT0         Japan              Pacific     Turkey
America     EET      GMT-0        Kwajalein          Poland      UCT
Antarctica  Egypt    GMT+0        leap-seconds.list  Portugal    Universal
Arctic      Eire     Greenwich    Libya              posix       US
Asia        EST      Hongkong     localtime          posixrules  UTC
Atlantic    EST5EDT  HST          MET                PRC         WET
Australia   Etc      Iceland      Mexico             PST8PDT     W-SU
Brazil      Europe   Indian       MST                right       zone1970.tab
Canada      Factory  Iran         MST7MDT            ROC         zone.tab
CET         GB       iso3166.tab  Navajo             ROK         Zulu
Chile       GB-Eire  Israel       NZ                 Singapore
CST6CDT     GMT      Jamaica      NZ-CHAT            SystemV
```

``` timedatectl list-timezones ```で一覧を確認すると425種類あった。

#タイムゾーン設定の変更
-```dpkg-reconfigure tzdata```で変更
1.Asiaを選択して[Enter]
![image.png](https://qiita-image-store.s3.amazonaws.com/0/366164/f57dc3f8-1037-2a8e-00eb-001929add8ac.png)
2.Tokyoを選択して[Enter]
![image.png](https://qiita-image-store.s3.amazonaws.com/0/366164/21e417f8-92a4-964b-4232-432591d6d851.png)

変更後の中身を確認してみる。/etc/localtimeは/usr/share/zoneinfo/Asia/Tokyoへのシンボリックリンクに変更されている。
中身はこれまたよくわからない文字列とJST-9の文字列。どうやらバイナリデータらしい。

```
$ ls -l /etc/localtime
lrwxrwxrwx 1 root root 30 Mar 11 21:07 /etc/localtime -> /usr/share/zoneinfo/Asia/Tokyo
$ cat /etc/localtime
TZif2
        彎p恪K獰・p挈-獻鞁〝樔碚
                                汨
                                    LMTJDTJSTTZif2

・?p彎p恪K獰・p挈-獻鞁〝樔碚
                                                                汨
                                                                    LMTJDTJST
JST-9
```
ちなみに/usr/share/zoneinfo/Asia/Tokyoもシンボリックリンクで実体は/usr/share/zoneinfo/Japanである。

```
$ ls -l /usr/share/zoneinfo/Asia/Tokyo
lrwxrwxrwx 1 root root 8 May  5  2018 /usr/share/zoneinfo/Asia/Tokyo -> ../Japan
$ ls -l /usr/share/zoneinfo/Japan
-rw-r--r-- 1 root root 318 May  5  2018 /usr/share/zoneinfo/Japan
```

/etc/timezoneはAsia/Tokyoという文字列に変更されている。

```
$ ls -l /etc/timezone
-rw-r--r-- 1 root root 11 Mar 11 21:07 /etc/timezone
$ cat /etc/timezone
Asia/Tokyo
```

-```dpkg-reconfigure tzdata```を使わず手動で変更も可能。/usr/share/zoneinfo/の中身を間違って書き換えてしまわないように注意。

```
$sudo ln -s /usr/share/zoneinfo/Asia/Tokyo /etc/localtime
$sudo nano /etc/timezone
```

#変更後の確認
ローカルタイムが日本標準時(JST)になっていることを確認。

```
$ timedatectl
      Local time: Mon 2019-03-11 21:19:04 JST
  Universal time: Mon 2019-03-11 12:19:04 UTC
        RTC time: Mon 2019-03-11 12:19:06
       Time zone: Asia/Tokyo (JST, +0900)
 Network time on: yes
NTP synchronized: yes
 RTC in local TZ: no
```