我正在尝试使用配置服务器来设置应用程序的默认时区。
我尝试将 VM 参数及其工作设置为低于值。
-Duser.timezone=IST
但是,当我将属性
user.timezone
添加到 application.properties
或 bootstrap.properties
或配置服务器属性时,它不起作用。
我尝试的其他方法是使用
@PostConstruct
,如下所示:
@PostConstruct
public void init() {
// Setting Spring Boot SetTimeZone
TimeZone.setDefault(TimeZone.getTimeZone("UTC"));
}
但在这里我对时区信息进行硬编码,并且我需要它是可配置的。
我相信应用程序可能在应用程序启动之初就需要此属性,因此属性文件设置不起作用,但我不确定。
是否有任何解决方法或解决方案可以使用配置服务器将默认时区设置为 Spring Boot 应用程序?
您可以在 main 方法中设置时区,但我不知道这是否足以满足您的需要。
...
public static void main(String[] args) {
TimeZone.setDefault(TimeZone.getTimeZone("UTC"));
SpringApplication.run(Application.class, args);
}
...
请注意,在 post 构造中设置默认时区允许之前的 beans 获取之前的时区而不是您的时区。一开始就改变它以避免这个问题。