private final void demo(){
ZoneId assiaZone = ZoneId.of("Asia/Singapore");
ZoneId americaZone = ZoneId.of("America/New_York");
ZonedDateTime zonedDateTime = ZonedDateTime.now(ZoneId.of("UTC"));
System.out.println("Current Time As UTC : " + zonedDateTime);
System.out.println("Current time As America time : " + dateConvertWithZoneId(zonedDateTime, americaZone));
System.out.println("Current time As Asia time : " + dateConvertWithZoneId(zonedDateTime, assiaZone));
}
private final LocalDateTime dateConvertWithZoneId(ZonedDateTime actualDate, ZoneId withZone){
ZonedDateTime date = actualDate;
return date.withZoneSameInstant(withZone).toLocalDateTime();
}
1条答案
按热度按时间p4tfgftt1#
按照最佳实践,将时间预设为
UTC
被认为是最佳实践,为了避免将来springbootjpa出现错误,请在应用程序中使用以下代码。属性文件,显然您可以根据自己的选择修改时区:也可以直接附加为:
但要解决这个问题,你有两个选择:
1-
JPA Native Query
选择和投射对象数组,例如:您可以使用oracle功能将pst转换为utc
jpa存储库:
命令行运行程序
2-使用java在时区之间转换日期和时间,例如(utc+8:00)亚洲/新加坡-新加坡时间到(utc-5:00)美洲/纽约-东部标准时间: