假设我在Java应用程序中有一个Instant
类型的字段,并将其作为DATE
类型存储在PostgreSQL数据库中。
如果我保存,例如21.02.2019 14:03:59
它将被存储为21.02.2019
但是当我从数据库读取时,它将如何被重新翻译?
会是:21.02.2019 00:00:00.000
或21.02.2019 23:59:59.000
?
我知道我应该用Timestamp
来代替:)
最佳答案
那要看你是怎么看的。Instant
和SQLDATE
是不等价的,我不知道任何可靠的库,甚至可以让您从DATE
读取到Instant
。如果您自己编写的代码允许这样做,那么您可以让它以任何方式填充小时、分钟、秒和毫秒,即使它没有意义(因此,除非您显式地编写代码来将java.sql.Date
转换为java.time.Instant
,否则您的问题的真正答案将是“两者都不是”)。
如果您正在设计将实例存储为日期的软件,那么您的设计是有缺陷的。在Java端使用LocalDate
,或者在数据库中使用TIMESTAMP
。
关于java - PostgreSQL日期与Java即时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54807934/