스프링 부트 JVM을 UTC 시간대로 강제 설정하려면 어떻게 해야 하나요?
Force Java 시간대를 GMT/UTC로 표시했습니다.
나는 노력했다.
- mvn spring-boot: -Dexec.args="Duser.timezone=GMT"를 실행합니다.
- mvn spring-boot: -Dexec.args=-Duser.timezone=을 실행합니다.UTC"
user.timezone=UTC
에config/application.properties
user.timezone=GMT
pom.xml:
<plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <configuration> <properties> <spring-boot.run.jvmArguments>-Duser.timezone=UTC</spring-boot.run.jvmArguments> </properties> </configuration> </plugin>
- mvn spring-boot: 실행 -Dspring-boot.run.jvmArguments="Duser.timezone="UTC"
하지만 그것은 인쇄된다.
System.out.println(TimeZone.getDefault());
sun.2014.2014.2014.2014.2014.2011ZoneInfo[id="America/New_York", offset=-18000000, dstSavings=3600000, useDaylight=true, transitions=235, lastRule=sec.util.SimpleTimeZone [id=America/New_York, offset=-18000000, dstSavings=3600000, useDaylight=true, startYear=0, startMonth=2, startDay=8, startDayOfWeek=1,13,000, StartTime=0, End,
스프링 부트 1.5.19, Java 8
어플리케이션 레벨에서 어플리케이션의 타임존을 설정할 수 있다고 생각합니다.이 링크가 도움이 될 것 같아요.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"));
}
}
도움이 되길 바랍니다!
Maven Spring Boot Plugin에서 Forked Spring Boot 애플리케이션으로 JVM 옵션을 전달하려면 속성을 사용합니다.
<properties>
<spring-boot.run.jvmArguments>-Duser.timezone=UTC</spring-boot.run.jvmArguments>
</properties>
이는 명령줄 구문과 동일합니다.
mvn spring-boot:run -Dspring-boot.run.jvmArguments="-Duser.timezone=UTC"
또는 완전 패키지화된 Spring Boot 응용 프로그램을 실행하는 경우:
java -Duser.timezone=UTC -jar app.jar
타임 존을 설정하려면 , 다음의 순서에 따라 주석을 달 수 있습니다.@Configuration
주석입니다.프로젝트 내 어디에나 넣을 수 있습니다.저는 보통 이 카테고리에 해당하는 모든 클래스를 패키지 형식으로 수용합니다.config
. 반드시 추가해 주세요.@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());
}
}
원문 참조
응용 프로그램이 Linux에서 실행되는 경우 추가 옵션:
세트TZ
환경 변수
POSIX 시스템에서는 사용자가 TZ 환경변수를 사용하여 시간대를 지정할 수 있습니다(https://www.gnu.org/software/libc/manual/html_node/TZ-Variable.html)를 참조하십시오.
이 옵션은 모든 클라우드 환경에서 특히 유용합니다.
(심볼링크)/etc/locatime
로컬 내 , 컬 i 。/etc/locatime
의 심볼 /usr/share/zoneinfo/Europe/Berlin
:
➜ ls -l /etc/localtime
lrwxrwxrwx 1 root root 33 22. Jan 23:01 /etc/localtime -> /usr/share/zoneinfo/Europe/Berlin
는 쉽게 수 요.ln -s /usr/share/zoneinfo/GMT /etc/localtime
한 값은 에./usr/share/zoneinfo/
.
이 옵션은 호스트 볼륨을 마운트하여 많은 클라우드 환경에서 사용할 수도 있습니다. 명령 및 인수가 포함된 POD의 kubernetes 시간대를 참조하십시오.
포스트 컨스트럭트가 작동하지 않는 경우가 있어 프리 컨스트럭트가 기능하는 경우가 있다.
@EnableSwagger2
@SpringBootApplication(scanBasePackages = { "com.app" })
public class Application {
public static void main(String[] args) {
System.out.println("Setting the timezone"+TimeZone.getTimeZone("GMT+9:00").getID());
TimeZone.setDefault(TimeZone.getTimeZone("GMT+9:00"));
SpringApplication.run(Application.class, args);
}
}
유닛 테스트를 실행할 때 intellij에서 이 기능은 매우 효과적입니다.junit 또는 maven config의 vm 인수 GMT에 bellow 명령어를 추가해야 합니다(UTC가 왜 작동하지 않는지 모르겠습니다.이것이 도움이 되기를 바랍니다^^).
-Duser.timezone="GMT+2"
<properties> <spring-boot.run.jvmArguments>-Duser.timezone=UTC</spring-boot.run.jvmArguments> </properties>
그것은 나에게 효과가 없었다.
대신 jvmArguments를 사용하면 효과가 있습니다.참고 자료: https://docs.spring.io/spring-boot/docs/current/maven-plugin/reference/html/...
말하면 <configuration> <jvmArguments>-Duser.timezone=UTC</jvmArguments> </configuration>
언급URL : https://stackoverflow.com/questions/54316667/how-do-i-force-a-spring-boot-jvm-into-utc-time-zone
'programing' 카테고리의 다른 글
캐시에서 페이지를 표시하는 브라우저의 뒤로 버튼? (0) | 2023.03.22 |
---|---|
ember.js용 커스텀 어댑터를 작성하려면 어떻게 해야 합니까? (0) | 2023.03.22 |
종속성 트리 Reactjs를 확인할 수 없습니다. (0) | 2023.03.22 |
jQuery.ajax를 사용하여 멀티파트/폼데이터 전송 (0) | 2023.03.22 |
Woocommerce에서 제품 이름별로 제품 퍼멀링크 가져오기 (0) | 2023.03.17 |