如何强制 Spring Boot JVM 进入 UTC 时区?

新手上路,请多包涵

我看到 强制 Java 时区为 GMT/UTC

我试过了

  • mvn spring-boot:run -Dexec.args=“-Duser.timezone=GMT”
  • mvn spring-boot:run -Dexec.args=“-Duser.timezone=UTC”
  • user.timezone=UTCconfig/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:run -Dspring-boot.run.jvmArguments=“-Duser.timezone=UTC”

但它打印出来

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

sun.util.calendar.ZoneInfo[id=“America/New_York”,offset=-18000000,dstSavings=3600000,useDaylight=true,transitions=235,lastRule=java.util.SimpleTimeZone[id=America/New_York,offset=- 18000000,dstSavings=3600000,useDaylight=true,startYear=0,startMode=3,startMonth=2,startDay=8,startDayOfWeek=1,startTime=7200000,startTimeMode=0,endMode=3,endMonth=10,endDay=1, endDayOfWeek=1,endTime=7200000,endTimeMode=0]]

弹簧引导 1.5.19,Java 8

原文由 Chloe 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 878
2 个回答

如果要将 JVM 选项从 Maven Spring Boot 插件传递到分支的 Spring Boot 应用程序,请使用 spring-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"

或者在运行完全打包的 Spring Boot 应用程序时:

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

原文由 Karol Dowbecki 发布,翻译遵循 CC BY-SA 4.0 许可协议

我认为您可以在应用程序级别设置应用程序的时区。我认为此链接会对您有所帮助。 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"));
    }

}

希望这可以帮到你!

原文由 YONGSOO KIM 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题