【发布时间】:2022-11-15 05:20:21
【问题描述】:
我正在从上游系统读取数据,它以这样的字符串格式返回日期,
String dateFromUpstream = 11-14-2022 10:41:12 EDT
现在,我想将此字符串转换为 UTC 时区的日期格式,然后将其存储到我的实体中。
我尝试了以下方式,
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("MM-dd-yyyy HH:mm:ss z");
LocalDateTime date = ZonedDateTime.parse(dateFromUpstream, formatter).toLocalDateTime().atZone(ZoneId.of("UTC"));
但这不会将日期更改为 UTC 时区。它仍然在字符串末尾为我提供与 UTC 而不是 EDT 相同的日期。
任何人都知道我该怎么做然后存储到一个实体中?
【问题讨论】:
-
LocalDateTime是要转换成的错误类型。转换为Instant。 -
我不能使用 localdatetime 吗?我想将此值存储到一个实体中,然后我使用此值与来自实体的另一个日期时间值进行比较,该实体具有 UTC 格式的日期时间。
-
LocalDateTime代表民用时间没有时区,例如“1 月 3 日,下午 5:25”。它可能意味着物理时间中的许多不同的实际瞬间。LocalDateTime甚至没有像 UTC 这样的时区。
标签: java