아마존 Linux AMI 및 Ubuntu의 TimeZone 설정 date PHP Ruby Java의 TimeZone 출력 확인

4431 단어 UbuntuAWSJava
아마존 리눅스 AMI와 Ubuntu의 TimeZone 설정과 설정에 따라 PHP 루비 자바의 출력 차이를 확인했다.

아마존 Linux AMI의 초기 설정 확인


아마존 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의 초기 설정
$ 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",...]

아마존 Linux AMI 및 Ubuntu의 localtime 변경


아마존 Linux AMI와 Ubuntu는 /etc/timezone 아래에서 설정하고자 하는 TimeZone을 선택하여 /usr/share/zoneinfo 에 링크를 붙인다.
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로 변경한 후 아마존 Linux AMI에서 확인

/etc/localtime표시 America/Los_Angeles로 변경된 후/etc/localtime/etc/localtime 확인
$ 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/sysconfig/clock표시 America/Los_Angeles로 변경된 후/etc/localtime/etc/localtime 확인
$ 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 적용


TimeZone은 Java의 TimeZone 출력에서만 변경/etc/timezone됩니다.
아마존 리눅스 AMI/etc/localtime, Ubuntu/etc/sysconfig/clock에서도 변경된다.
아마존 Linux AMI의 경우 변경/etc/timezone합니다.
$ 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/sysconfig/clock합니다.
$ sudo vim /etc/timezone
America/Los_Angeles

# Java System.out.println(TimeZone.getDefault());
sun.util.calendar.ZoneInfo[id="America/Los_Angeles",...]
또한 Ubuntu의 경우 /etc/timezone 를 통해 dpkg-reconfigure tzdata /etc/localtime 를 동시에 설정할 수 있습니다.
$ dpkg-reconfigure tzdata
# 上記設定画面が表示されAmerica/Los_Angelesを設定

# Java System.out.println(TimeZone.getDefault());
sun.util.calendar.ZoneInfo[id="America/Los_Angeles",...]

결과


TimeZone을 변경할 때 /etc/timezone 외에도 Amazon Linux AMI/etc/localtime Ubuntu에서 변경해야 합니다/etc/sysconfig/clock.

좋은 웹페이지 즐겨찾기