티스토리 뷰

IT/개발

Java default timezone

K.Nero 2019. 3. 7. 13:13

PostgreSQL 의 timezone 을 보다가 jvm의 timezone 까지 확인할 일이 생겼다.  서버를 처음 구축할 당시 아무 생각없이 timezone 을 .profile 에

TZ='Asia/Seoul'; export TZ

설정을 추가하여 사용하고 있었는데 java 의 로그시간이 이상한 것을 보고 어느 부분을 수정해 주어야 하는지 찾아 보았다. 우선 date 명령어를 통해서 현재 시간이 맞지 않는 것을 확인했고 이것을 고치면 jvm 도 같이 고쳐질 것이라고 생각했다.

1. /etc/localtime 은 어떤 시간대를 사용할 지 정해주는 파일로 사용해야 하는 파일은 /usr/share/zoneinfo/ 밑에 있는 폴더 안의 파일들을 사용하면 되는데 서울은 /usr/share/zoneinfo/Asia/Seoul 파일이다. 이 파일로 변경해주자.

sudo mv /etc/localtime /etc/localtime.back (무서워서 백업..)
sudo ln -s /usr/share/zoneinfo/Asia/Seoul /etc/localtime

이렇게 하고 터미널을 재접속 해주면 date 명령어에 정확한 시간이 나오는 것을 확인할 수 있다. 그리고 jvm을 기동하니 로그가 여전히 잘 못된 시간을 표현해 주고 있었다. 

2. /etc/timezone 있는데 vi 로 열어보면 기본 Etc/UTC 로 되어있었다. 이 경로도 /usr/share/zoneinfo/ 의 하위 폴더 경로와 비슷하다고 생각해서 확인해 보니가 /usr/share/zoneinfo/Etc/UTC가 있었고 timezone 파일 내용을 변경해 보았다.

sudo vi /etc/timezone
Asia/Seoul 입력

그렇게 한 뒤 jvm 을 재기동해 보니 로그시간이 정상적으로 출력되는 것을 확인했다. 개발한지 조금 지났는데 모르는 것이 너무 많은..ㅠㅠ


'IT > 개발' 카테고리의 다른 글

Java9 - Collection Factory Methods  (0) 2019.03.14
Java9 - Module System  (0) 2019.03.12
Java8 Feature  (0) 2019.03.04
local Docker 개발 환경 만들기  (0) 2018.10.19
Spring @Transactional 사용하기  (0) 2018.10.18
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2024/05   »
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
글 보관함