为什么我的 Java LocalDate 在 Postgres 中被保存为前一天?

问题描述 投票:0回答:1

总结

如果我创建一个 Java

LocalDate
对象(例如:“2023-09-28”)并将其保存到我的 Postgres 数据库,前一天就会被存储(例如:“2023-09-27”)。

  • 存储的数据库值始终落后1天

代码

这是我的代码(micronaut):

@MappedEntity("event")
data class Event(

    @field:Id val id: UUID,

    val date: LocalDate // <===
)

@JdbcRepository(dialect = Dialect.POSTGRES)
interface EventRepository: CrudRepository<Event, UUID> {}

这是我保存它的方法:

    val date = LocalDate.parse("2023-09-28", DateTimeFormatter.ISO_LOCAL_DATE)

    val newEvent = Event(id, date)
    repo.save(newEvent)

日志显示正在发送的正确值:

DEBUG io.micronaut.data.query - Executing SQL query: INSERT INTO "event" ("date","id") VALUES (?,?)
TRACE io.micronaut.data.query - Binding parameter at position 1 to value 2023-09-28 with data type: DATE

数据库

我正在使用这个驱动程序:

"org.postgresql:postgresql"

我的postges表使用列类型

date

create table event
(
    id   uuid not null,
    date date not null
);

可运行示例

我这里有一个最小的可重现示例:

postgresql jdbc micronaut micronaut-data
1个回答
0
投票

我想可能和这个有关?

© www.soinside.com 2019 - 2024. All rights reserved.