타임존 설정때문에 애를 많이 먹어서 따로 씀
타임존은
서버 == DB == 프로젝트
이렇게 삼위일체 해야함
aws 서버는 디폴트값이 UCT / DB도 일단 웬만하면 UCT 인데
가끔 서버와 다르게 나올 수있으니 확인이 필요함
- 1) Linux OS의 시간대와 시간을 확인한다.
echo $TZ
date
- 2) Oracle Database에 출력되는 시간을 확인한다.
-- Check Time as System (이곳이 System의 시각과 동기화된다.) SELECT SYSDATE, SYSTIMESTAMP FROM DUAL ;
같으면 넘어감
다르면???
1단계- DB재가동 & 2단계- 시간대 설정해줘야함
나의 경우 서버& DB 가 UTC 로 시간대동일함
그런데 프로젝트는 디폴트값이 KST 이다
그래서 프로젝트 홈컨트롤러에
UTC로 타임존을 변경하는 소스코드를 넣어주었다 (간단)
스프링부트 타임존 설정방법
타임존 셋팅하는 방법 jvm argument로 넘기는 방법이 있지만, 여기서는 애플리케이션 코드 내부에 @PostConstruct를 이용하는 방법에 대해서 알아보자.
@SpringBootApplication
public class SpringBootServerTimezoneApplication {
@PostConstruct
public void started() {
// timezone UTC 셋팅
TimeZone.setDefault(TimeZone.getTimeZone("UTC"));
}
public static void main(String[] args) {
SpringApplication.run(SpringBootServerTimezoneApplication.class, args);
}
}
출처 : https://umanking.github.io/2021/08/10/spring-boot-server-timezone/