我有一个返回年、月、日和小时的 DTO。因此,将 DTO 中的值传递给 ZonedDateTime.of 方法。在这里,时间是太平洋标准时间上午 10 点过去。因此,尝试将其转换为 UTC。
当月份为 5 时,它返回开始时间 17PM,当月份为 2 时,它返回开始时间为 18PM UTC。它正在考虑节约日光。无论月份如何,它都应该是世界标准时间晚上 18 点。有什么办法可以忽略这里的日光节约吗?
TimeZone tz = TimeZone.getTimeZone("America/Los_Angeles");
final ZonedDateTime jobStartDateTimeZ = ZonedDateTime.of(2017, 5, 1, 10,
0, 0, 0, tz.toZoneId());
Instant startTime = jobStartDateTimeZ.withZoneSameInstant(ZoneOffset.UTC).toInstant();
System.out.println("Start Time "+startTime);
我们使用旧系统,字符串将位于 DB 中的“America/Los_Angeles”中,并且可以有任何时区,例如“America/Bahia”。我们想为任何时区处理这种格式。