728x90
반응형

[Spring Boot] TimeZone 설정 (KST, UTC, KST to UTC, 9시간 차이)

DB에 저장된 Date형식을 Thymeleaf를 통해 View에 출력하려고 했다.

그런데 계속 DB에 저장된 시간보다 +9시간 되어서 출력되길래 무엇이 문제인지 찾아 보았다.


image


위의 사진은 DB에 저장되어있는 Date이다.


image


아래는 서버를 실행시켜 Thymeleaf를 이용하여 View에 나타낸 것이다.

DB에 저장된 시간과 9시간이 차이가 나며 KST라는 표시가 나와있다.
그래서 KST에 대해 알아보았다.

한국 표준시(韓國標準時, KST, Korea Standard Time)는 대한민국과 조선민주주의인민공화국의 표준시로, 동경 135도를 기준으로 하여 UTC보다 9시간 빠른 표준시(UTC+09:00)이다. - 위키백과 -


위의 글 처럼 UTC 보다 9시간 빠르다는 것으로 현재 KST로 출력되는 시간을 UTC로 바꿔주면 된다고 유추하였다.
참고로 UTC(Universal Time Coordinated)는 그리니치 천문대를 기준으로 하는 세계 표준 시간이다.

해결법

@SpringBootApplication
public class HellpartyApplication {

    @PostConstruct
    void started() {
        // timezone UTC 셋팅
        TimeZone.setDefault(TimeZone.getTimeZone("UTC"));
    }

    public static void main(String[] args) {
        SpringApplication.run(HellpartyApplication.class, args);
    }

}

위의 코드처럼 메인 메서드가 선언된 클래스에 timezone을 셋팅해주면 된다.


image


TimeZone을 설정해 준 후 실행시켜 보면 위의 사진처럼 DB에 저장된 시간과 같은 시간으로 나타나게 된걸 볼 수 있다.



참고 블로그
https://umanking.github.io/2021/08/10/spring-boot-server-timezone/

728x90
반응형
MyeongDev