我看到了Force Java timezone as GMT/UTC
我试
- mvn spring-boot:run -Dexec.args="-Duser.timezone=GMT”
- mvn spring-boot:run -Dexec.args="-Duser.timezone=UTC”
config/application.properties
中的user.timezone=UTC
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());
太阳效用日历。ZoneInfo[id=“America/New_约克”,offset=-18000000,dstSavings = 3600000,useDaylight =true,transitions=235,lastRule=java.效用SimpleTimeZone[id=America/New_York,offset=-1800000,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]]
Sping Boot 1.5.19、Java 8
8条答案
按热度按时间qncylg1j1#
我认为你可以在你的应用程序级别上设置你的应用程序的时区。我想这个链接会对你有帮助。https://www.onlinetutorialspoint.com/spring-boot/how-to-set-spring-boot-settimezone.html
所以你需要做的是在“@SpringBootApplication”annotation所在的主类中添加“@PostConstruct”annotation,并在那里添加时区设置方法。这里有一个例子。
希望这能帮到你!
kuarbcqp2#
如果你想将JVM选项从Maven Sping Boot Plugin传递到forked Spring Boot应用程序,请使用
spring-boot.run.jvmArguments
属性:这相当于命令行语法:
或者当运行完整打包的Sping Boot 应用程序时:
jc3wubiy3#
您可以使用一个用
@Configuration
注解的类来配置时区。您可以将其放在项目中的任何位置。我通常将所有属于这一类别的类存放在一个名为config
的包中。确保将@PostConstruct
注解添加到实际设置时区的方法中。参见original article
nnvyjq4y4#
后构造有时不起作用,使它预构造为我工作
6ovsh4lw5#
如果您的应用程序在Linux下运行,则有更多选项:
设置
TZ
环境变量参见“在POSIX系统中,用户可以通过TZ环境变量指定时区”(https://www.gnu.org/software/libc/manual/html_node/TZ-Variable.html)。
此选项在任何云环境中都特别有用。
符号链接
/etc/locatime
例如,在我的本地系统中,
/etc/locatime
符号链接到/usr/share/zoneinfo/Europe/Berlin
:您可以轻松地使用
ln -s /usr/share/zoneinfo/GMT /etc/localtime
更改符号链接,可能的值可以在/usr/share/zoneinfo/
中找到。此选项也可以通过挂载主机卷在许多云环境中使用,请参阅kubernetes timezone in POD with command and argument。
0dxa2lsx6#
当我在intellij上运行单元测试时,这对我来说就像是一种魅力:你必须在junit或maven config的vm参数GMT上添加下面的命令(我不知道为什么UTC对我不起作用,希望这对你有帮助)
6jjcrrmo7#
<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>
wmtdaxz38#
-Duser.timezone=UTC在编辑配置-->修改选项-->添加虚拟机选项,以便与我合作