본문 바로가기
java

Springboot change timezone

by 후린트 2020. 4. 21.
반응형

Spring boot 실행시 timezone 변경 

  Springboot 구동 완료시 기본 timezone을 설정

@EnableAutoConfiguration 
public class SeaSpringApplication { 
	private static final String timeZone = "Asia/Singapore";
	@PostConstruct
	public void init(){
        // java.util.Date default timezone setting
   		TimeZone.setDefault(TimeZone.getTimeZone(timeZone));
        // joda.time.DateTime default timezone setting
		DateTimeZone.setDefault(DateTimeZone.getProvider().getZone(timeZone) );   
   	}
   	public static void main(String[] args) { 
		SpringApplication.run(SeaSpringApplication.class, args); 
   	} 
}

위와 같이 했을 경우에는 log파일에 출력되는 시간 형식은 시스템에 설정된 timeZone으로 출력된다. 

그렇기 때문에 springboot 실행시 옵션을 추가하는 방식을 추천한다.

실행시 옵션 추가
-Duser.timezone=Asia/Singapore

ex) java -jar -Duser.timezone=Asia/Singapore springboot.jar 

https://docs.oracle.com/javase/9/troubleshoot/time-zone-settings-jre.htm#JSTGD377

 

Time Zone Settings in the JRE

You can explicitly set a default time zone on the command line by using the Java system property called user.timezone. This bypasses the settings in the Windows operating system and can be a workaround. For instance, this setting is useful if you want dayl

docs.oracle.com

 

반응형

'java' 카테고리의 다른 글

스프링부트 로그레벨 변경  (0) 2020.05.20
gradle_user_home 디렉토리 설정  (0) 2020.04.23
spring boot cannot find main class  (0) 2020.03.18
spring boot lazy-loading 사용시 에러  (0) 2020.01.30
springboot 핸들바 auto configuration  (0) 2019.10.08