Server에서 Date객체를 이용해 View에 보여줄때에 Timezone설정에 따라 시간이 다른것을 알 수가 있다.
이것을 해결하고자 해당 방법을 제시하고자한다.


Amazone Web ServiceAmazone Web Service

EC2 TimeZone을 변경해야하는 이유는?


  • MySQL – 기본적으로 RDS MySQL DB 인스턴스의 표준 시간대는 Coordinated Universal Time(UTC)입니다. MySQL 5.5, 5.6 또는 5.7을 사용하는 경우 인스턴스의
    파라미터 그룹에서 time_zone 파라미터를 설정하여 인스턴스의 표준 시간대를 변경할 수 있습니다. 해당 파라미터 그룹을 사용하는 모든 인스턴스 및 읽기 전용 복제본이 새 표준 시간대를 사용하도록 변경됩니다.
    RDS MySQL 5.5 이전 버전의 경우 표준 시간대를 변경할 수 없습니다. 자세한 내용은 MySQL DB 인스턴스의 로컬 표준 시간대를 참조하십시오

    AWS문서

위의 AWS문서를 참고하면 기본적으로 EC2를 쓸때에 MySQL을 함께 쓴다면 5.5 이하버전은 파라미터로 표준시간대를 설정할 수가 없습니다.
만약 해당사항이 없거나 변경하고싶지 않으시다면 안하셔도 됩니다. 그외에 다른 해당사항은 다음 도큐먼트 문서를 참고해주시기 바랍니다.

Quick Start

Timezone


1
2
3
4
5
6
7
8
9
10
11
12
13
$ date
Thu Dec 13 06:41:49 UTC 2018 // 이런식으로 나올 것이다.

$ cat /etc/localtime
...UTC
UTC.. // UTC로 되어있는것을 확인

$sudo rm /etc/localtime // 디렉토리를 삭제한다.

$sudo ln -s /usr/share/zoneinfo/Asia/Seoul /etc/localtime // Asia/Seoul 이기때문에 해당 폴더를 심볼릭 링크한다.

$ date
Thu Dec 13 11:15:08 KST 2018

Locale

리눅스는 기본적으로 en_US로 설정되어있는데 서버시간 설정이나 언어설정등의 문제로 변경을 필요로할때 변경하시면 됩니다.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
$ locale // 현재 설정이 어느것으로 되어있는지 확인하는 명령어이다.
LANG=en_US.UTF-8
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=

$ locale -a // 변경 가능한 locale을 확인한다.
aa_DJ
aa_DJ.iso88591
aa_DJ.utf8
.
.
.
zh_TW.big5
zh_TW.euctw
zh_TW.utf8
zu_ZA
zu_ZA.iso88591
zu_ZA.utf8

$ nano /etc/sysconfig/i18n // 나노에디터 또는 vi or vim 등으로 편집을 한다.
LANG=en_US.UTF-8
--->
LANG=ko_KR.utf8

설정 끝

Restart하면 적용 된다.