gpt4 book ai didi

Java 8 偏移日期解析

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:16:02 25 4
gpt4 key购买 nike

我需要将以下格式的字符串 2015-01-15-05:00 解析为 UTC 中的 LocalDate(或其他)。问题是下面的代码:

System.out.println(LocalDate.parse("2015-01-15-05:00", DateTimeFormatter.ISO_OFFSET_DATE));

输出 2015-01-15 忽略偏移量。所需的输出是 2015-01-16

提前致谢!

最佳答案

最简单的答案是使用OffsetDateTime来表示数据,但是你需要默认时间:

DateTimeFormatter fmt = new DateTimeFormatterBuilder()
.append(DateTimeFormatter.ISO_OFFSET_DATE)
.parseDefaulting(ChronoField.HOUR_OF_DAY, 0)
.toFormatter();
OffsetDateTime dt = OffsetDateTime.parse("2015-01-15-05:00", fmt);
LocalDate date = dt.withOffsetSameInstant(ZoneOffset.UTC).toLocalDate();

ZonedDateTime 在处理时区时很有用,但当您只处理偏移量时,OffsetDateTime 更简单。

一般来说,应用程序代码不应包含 TemporalAccessor 类型的变量。如果您看到了,通常会有更好的方法。

关于Java 8 偏移日期解析,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34810324/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com