Amazon Linux AMIとUbuntuでのTimeZone設定 date PHP Ruby JavaでのTimeZone出力確認
Amazon Linux AMIとUbuntuでのTimeZone設定と設定によってPHP Ruby Javaの出力の違いを確認してみました。
Amazon Linux AMIの初期設定 確認
Amazon Linux AMIの初期設定は/etc/localtime
/etc/sysconfig/clock
共にUTCになっています。
/etc/localtime
/etc/sysconfig/clock
の初期設定
$ cat /etc/localtime
TZif2UTCTZif2UTC
UTC0
$ cat /etc/sysconfig/clock
ZONE="UTC"
UTC=true
date PHP Ruby Javaでの確認
$ date
2016年 xx月 xx日 x曜日 xx:xx:xx UTC
$ php -a
php > echo date_default_timezone_get();
UTC
$ irb
irb(main):001:0> Time.now.zone
=> "UTC"
# Java System.out.println(TimeZone.getDefault());
sun.util.calendar.ZoneInfo[id="UTC",...]
Ubuntuの初期設定 確認
Ubuntuには/etc/sysconfig/clock
が存在しない代わりに/etc/timezone
が存在します。
/etc/localtime
/etc/timezone
の初期設定
$ cat /etc/localtime
TZif2UTCTZif2UTC
UTC0
$ cat /etc/timezone
UTC
date PHP Ruby Javaでの確認
$ date
xx xx:xx:xx UTC 2016
$ php -a
php > echo date_default_timezone_get();
UTC
$ irb
irb(main):001:0> Time.now.zone
=> "UTC"
# Java System.out.println(TimeZone.getDefault());
sun.util.calendar.ZoneInfo[id="UTC",...]
Amazon Linux AMIとUbuntuのlocaltimeの変更
Amazon Linux AMIとUbuntu共に/usr/share/zoneinfo
以下の中から設定したいTimeZoneを選び、/etc/localtime
にリンクを張ります。
TimeZoneをAmerica/Los_Angelesに変更
$ ls /usr/share/zoneinfo
Africa Chile Factory Iceland MET posix UCT
America CST6CDT GB Indian Mexico posixrules Universal
Antarctica Cuba GB-Eire Iran MST PRC US
Arctic EET GMT iso3166.tab MST7MDT PST8PDT UTC
...
$ sudo ln -sf /usr/share/zoneinfo/America/Los_Angeles /etc/localtime
localtimeをAmerica/Los_Angelesに変更後Amazon Linux AMIで確認
/etc/localtime
をAmerica/Los_Angelesに変更後/etc/localtime
/etc/sysconfig/clock
の確認
$ cat /etc/localtime
...
PST8PDT,M3.2.0,M11.1.0
$ cat /etc/sysconfig/clock
ZONE="UTC"
UTC=true
date PHP Ruby Javaでの確認
$ date
2016年 xx月 xx日 x曜日 xx:xx:xx PST
$ php -a
php > echo date_default_timezone_get();
America/Los_Angeles
$ irb
irb(main):001:0> Time.now.zone
=> "PST"
# Java System.out.println(TimeZone.getDefault());
sun.util.calendar.ZoneInfo[id="UTC",...]
localtimeをAmerica/Los_Angelesに変更後Ubuntuで確認
/etc/localtime
をAmerica/Los_Angelesに変更後/etc/localtime
/etc/timezone
の確認
$ cat /etc/localtime
...
PST8PDT,M3.2.0,M11.1.0
$ cat /etc/timezone
UTC
date PHP Ruby Javaでの確認
$ date
xx xx:xx:xx PST 2016
$ php -a
php > echo date_default_timezone_get();
America/Los_Angeles
$ irb
irb(main):001:0> Time.now.zone
=> "PST"
# Java System.out.println(TimeZone.getDefault());
sun.util.calendar.ZoneInfo[id="UTC",...]
Javaに変更したTimeZoneを適用
JavaのTimeZone出力では/etc/localtime
を変更しただけではTimeZoneが変更されませんでした。
Amazon Linux AMIでは/etc/sysconfig/clock
、Ubuntuでは/etc/timezone
も変更します。
Amazon Linux AMIの場合は/etc/sysconfig/clock
を変更します。
$ sudo vim /etc/sysconfig/clock
ZONE="America/Los_Angeles"
UTC=true
# Java System.out.println(TimeZone.getDefault());
sun.util.calendar.ZoneInfo[id="America/Los_Angeles",...]
Ubuntuの場合は/etc/timezone
を変更します。
$ sudo vim /etc/timezone
America/Los_Angeles
# Java System.out.println(TimeZone.getDefault());
sun.util.calendar.ZoneInfo[id="America/Los_Angeles",...]
またUbuntuの場合はdpkg-reconfigure tzdata
をすることで/etc/localtime
/etc/timezone
の両方を同時に設定もできます。
$ dpkg-reconfigure tzdata
# 上記設定画面が表示されAmerica/Los_Angelesを設定
# Java System.out.println(TimeZone.getDefault());
sun.util.calendar.ZoneInfo[id="America/Los_Angeles",...]
結果
TimeZoneを変更する際には/etc/localtime
の他にAmazon Linux AMIでは/etc/sysconfig/clock
Ubuntuでは/etc/timezone
を変更する必要がありそうです。
Author And Source
この問題について(Amazon Linux AMIとUbuntuでのTimeZone設定 date PHP Ruby JavaでのTimeZone出力確認), 我々は、より多くの情報をここで見つけました https://qiita.com/sugar/items/578ae82d40f0b58d3e52著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .