如何最小化此处将日期字符串转换为UTC的代码
将此字符串"2021-04-14T20:51:21.527Z"转换为 UTC 值。
以下工作,但非常冗长......
protected final LocalDateTime dateTimeOfLoss = LocalDateTime.ofInstant(Instant.parse("2021-04-14T20:51:21.527Z"), ZoneId.of(ZoneOffset.UTC.getId()));
protected final ZonedDateTime zdt = dateTimeOfLoss.atZone(ZoneId.of(ZoneOffset.UTC.getId()));
我要提高可读性,这是为了测试。
回答
假设您需要这两个字段,请将它们翻转以构建第ZonedDateTime一个。然后,您LocalDateTime无需再次指定区域即可获得:
protected final ZonedDateTime zdt = Instant.parse("2021-04-14T20:51:21.527Z").atZone(ZoneOffset.UTC);
protected final LocalDateTime dateTimeOfLoss = zdt.toLocalDateTime();