복붙노트

[SPRING] 어떻게 UTC 시간대에 봄 부팅 JVM을 강요하는 걸까?

SPRING

어떻게 UTC 시간대에 봄 부팅 JVM을 강요하는 걸까?

나는 GMT / UTC으로 강제 자바 시간대를 보았다

나는 시도

그러나 출력한다

System.out.println(TimeZone.getDefault());

봄 부팅 1.5.19, 자바 (8)

해결법

  1. ==============================

    1.당신이 봄 부팅 응용 프로그램을 포크에 메이븐 봄 부팅 플러그인에서 JVM 옵션을 전달하려면 스프링 boot.run.jvmArguments 속성을 사용합니다 :

    당신이 봄 부팅 응용 프로그램을 포크에 메이븐 봄 부팅 플러그인에서 JVM 옵션을 전달하려면 스프링 boot.run.jvmArguments 속성을 사용합니다 :

    <properties>
      <spring-boot.run.jvmArguments>-Duser.timezone=UTC</spring-boot.run.jvmArguments>
    </properties>
    

    이 명령 줄 구문에 해당 될 수 있습니다 :

    mvn spring-boot:run -Dspring-boot.run.jvmArguments="-Duser.timezone=UTC"
    

    또는 완전 포장 봄 부팅 응용 프로그램을 실행하는 경우 :

    java -Duser.timezone=UTC -jar app.jar
    
  2. ==============================

    2.나는 당신이 당신의 응용 프로그램 수준에서 응용 프로그램의 시간대를 설정할 수 있다고 생각합니다. 나는이 링크는 당신을 도울 것입니다 생각합니다. https://www.onlinetutorialspoint.com/spring-boot/how-to-set-spring-boot-settimezone.html

    나는 당신이 당신의 응용 프로그램 수준에서 응용 프로그램의 시간대를 설정할 수 있다고 생각합니다. 나는이 링크는 당신을 도울 것입니다 생각합니다. https://www.onlinetutorialspoint.com/spring-boot/how-to-set-spring-boot-settimezone.html

    그래서 당신은 "@SpringBootApplication"주석이있는 메인 클래스에 "@PostConstruct"주석을 추가 할, 거기 시간대 설정 방법을 추가 할 필요가있는 무엇. 다음은 예이다.

    @SpringBootApplication
    public class HellotimezoneApplication {
    
        public static void main(String[] args) {
            SpringApplication.run(HellotimezoneApplication.class, args);
        }
    
        @PostConstruct
        public void init(){
          // Setting Spring Boot SetTimeZone
          TimeZone.setDefault(TimeZone.getTimeZone("UTC"));
        }
    
    }
    

    이 당신을 도울 수 있기를 바랍니다!

  3. ==============================

    3.당신은 @Configuration 주석 주석 클래스와 시간대를 구성 할 수 있습니다. 당신은 당신의 프로젝트에 어디를 넣을 수 있습니다. 나는 일반적으로 설정이라는 패키지에서이 범주에 맞는 모든 클래스를 수용. 실제로 시간대를 설정하는 방법에 @PostConstruct 주석을 추가해야합니다.

    당신은 @Configuration 주석 주석 클래스와 시간대를 구성 할 수 있습니다. 당신은 당신의 프로젝트에 어디를 넣을 수 있습니다. 나는 일반적으로 설정이라는 패키지에서이 범주에 맞는 모든 클래스를 수용. 실제로 시간대를 설정하는 방법에 @PostConstruct 주석을 추가해야합니다.

    import org.springframework.context.annotation.Configuration;
    
    import javax.annotation.PostConstruct;
    
    @Configuration
    public class LocaleConfig {
    
        @PostConstruct
        public void init() {
    
            TimeZone.setDefault(TimeZone.getTimeZone("UTC"));
    
            System.out.println("Date in UTC: " + new Date().toString());
        }
    }
    

    원래의 문서를 참조

  4. ==============================

    4.그럼, 질문을 기반으로 두 가지 옵션이 있습니다 :

    그럼, 질문을 기반으로 두 가지 옵션이 있습니다 :

  5. from https://stackoverflow.com/questions/54316667/how-do-i-force-a-spring-boot-jvm-into-utc-time-zone by cc-by-sa and MIT license