我有一个简单的springboot java应用程序。论测井与利用 LocalDateTime.now() 显示错误的时间戳,比系统(ubuntu)默认值多1小时。在日志时间戳中: 2020-11-26 14:46:00,584 INFO [scheduling-1].... 然后开始打印 LocalDateTime 我也是。但是,系统时间不同:
LocalDateTime.now()
2020-11-26 14:46:00,584 INFO [scheduling-1]....
LocalDateTime
$ date qui nov 26 13:50:13 -03 2020
那么,如何设置应用程序以从系统中获取正确的时间呢?
7kqas0il1#
在java中,为时间指定显式时区。例如:
ZoneId desiredTimeZone = ZoneId.of("America/Sao_Paulo"); ZonedDateTime logTime = ZonedDateTime.now(desiredTimeZone); System.out.println(logTime);
my java 11上的输出示例:2020-11-27t03:13:50.944898-02:00[美国/圣保罗]
7uzetpgm2#
你应该使用 ZonedDateTime 在你的项目上。使用其他日期格式可能总是出现时间错误。你可以读这个来学习 ZonedDateTime 与 LocalDateTime : https://www.baeldung.com/java-zoneddatetime-offsetdatetime
ZonedDateTime
https://www.baeldung.com/java-zoneddatetime-offsetdatetime
2条答案
按热度按时间7kqas0il1#
在java中,为时间指定显式时区。例如:
my java 11上的输出示例:
2020-11-27t03:13:50.944898-02:00[美国/圣保罗]
7uzetpgm2#
你应该使用
ZonedDateTime
在你的项目上。使用其他日期格式可能总是出现时间错误。你可以读这个来学习
ZonedDateTime
与LocalDateTime
:https://www.baeldung.com/java-zoneddatetime-offsetdatetime