在 UTC 中将 LocalDateTime 转换为 LocalDateTime

2022-08-31 09:15:09

将 LocalDateTime 转换为 LocalDateTime(以 UTC 为单位)。

LocalDateTime convertToUtc(LocalDateTime date) {

    //do conversion

}

我在网上搜索。但没有得到解决方案


答案 1

我个人更喜欢

LocalDateTime.now(ZoneOffset.UTC);

因为它是最可读的选项。


答案 2

LocalDateTime 不包含 Zone 信息。ZonedDatetime确实如此。

如果要将LocalDateTime转换为UTC,则需要按ZonedDateTime fist进行包装。

您可以像下面这样转换。

LocalDateTime ldt = LocalDateTime.now();
System.out.println(ldt.toLocalTime());

ZonedDateTime ldtZoned = ldt.atZone(ZoneId.systemDefault());

ZonedDateTime utcZoned = ldtZoned.withZoneSameInstant(ZoneId.of("UTC"));

System.out.println(utcZoned.toLocalTime());

推荐