gpt4 book ai didi

java - 如何将带时区的 PostgreSQL 时间戳转换为 Java Instant 或 OffSetDateTime?

转载 作者:行者123 更新时间:2023-12-05 02:52:28 26 4
gpt4 key购买 nike

如何将带时区的 PostgreSQL 时间戳转换为 Java Instant 或 OffSetDateTime?

带时区格式的 PostgreSQL 时间戳:2020-06-18 16:15:38+05:30

在 Java 11.7 中获取以下异常 - Ubuntu for Instant.parse("2020-06-18 16:15:38+05:30".replace("", "T"))

Exception in thread "main" java.time.format.DateTimeParseException: Text '2020-06-18T16:15:38+05:30' could not be parsed at index 19
at java.base/java.time.format.DateTimeFormatter.parseResolved0(DateTimeFormatter.java:2046)
at java.base/java.time.format.DateTimeFormatter.parse(DateTimeFormatter.java:1948)
at java.base/java.time.Instant.parse(Instant.java:395)
at OffSetDateTimeExample.main(OffSetDateTimeExample.java:9)

但它适用于 Java 13。

让它在 Java 11 中工作的任何帮助

最佳答案

拆分范围类型值

tstzrange 是一个 range type在 Postgres 中。

通过调用 lower upper 函数拆分查询中的 PostgreSQL tstzrange

select 
*,
lower(tstzrange) as lower_tstzrange,
upper(tstzrange) as upper_tstzrange
from announcement
;

并在 Resultset 中将其用作 OffsetDateTime

TstzRange.builder()
.startDateTime(rs.getObject("lower_tstzrange", OffsetDateTime.class))
.endDateTime(rs.getObject("upper_tstzrange", OffsetDateTime.class))
.build()

感谢a_horse_with_no_nameArvind Kumar Avinash为了节省我的时间并学习了拆分范围数据类型。

关于java - 如何将带时区的 PostgreSQL 时间戳转换为 Java Instant 或 OffSetDateTime?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62594327/

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