본문 바로가기
개발 잡담

Java ) LocalDateTime 은 시스템 시간 아니었나..?요?

by 휴일이 2024. 6. 18.

 

 

LocalDateTime 을 사용하고 있는데 linux 에서는 KST 시간으로 찍히지 않는 이슈가 있었다.

LocalDateTime 을 시스템 시간이라고 인지하고 있었고 리눅스 시스템 시간은 진즉 KST 로 바꿔놨었다.

 

봐봐잉

 

그런데,,,

 

ubuntu:~$ date
Tue Jun 18 10:06:30 KST 2024

ubuntu:~$ sudo hwclock
2024-06-18 10:17:29.060398+09:00

 

이렇게 하드웨어 시간/리눅스 타임존도 KST 로 잘 되어있었는데, 서버에 올린 애플리케이션은 UTC 시간으로 찍히고 있었다 ㅠ

난,,,서울 시간을 가져오고 싶은 걸...!!

 

 

 

찾아보니

LocalDateTime 은 JVM 시간대를 따라가는데 -> JVM 은 시스템 시간대를 따라가기 때문에 시스템 시간으로 표현해놓은 것 같다.

정확히는 JVM 의 시간대라고 표현할 수 있겠음..!

그리고 모종의 이유로,, 현재 EC2 인스턴스 서버의 시간대가 KST 로 설정되어있음에도

JVM 은 시스템 시간을 UTC 로 인지하여 돌아가고 있는 것 같았다.

테스트 서버와 운영 서버 둘 다 동일하게!!!!

 

 

java -Duser.timezone=Asia/Seoul -jar *.jar

 

-Duser.timezone=Asia/Seoul

그래서 JVM 이 시작할 때 KST 시간대로 인지할 수 있도록 시간 설정을 추가해주었따..

 

 

그랬더니 내가 테스트했던 시간(한국 시간 기준)으로 데이터가 추가되는 것을 확인했다.

야호~

728x90