【发布时间】:2014-10-10 15:26:37
【问题描述】:
根据我的阅读,在 JPA 中处理日期时可以选择 3 种类型的 TemportalType。它们是:
DATE
Map as java.sql.Date
TIME
Map as java.sql.Time
TIMESTAMP
Map as java.sql.Timestamp
我使用了TIMESTAMP,例如,它会像这样保留我的日期:2014-10-10 02:12:39
不过,我注意到的是,我正在失去我的约会对象的上午/下午。假设我的日期以字符串2014-10-10 02:12:39 PM 的形式出现,它将被保存为2014-10-10 02:12:39。当我去访问它时,它将是AM 而不是PM,因为我的日期格式是MMM dd, yyyy HH:mm:ss a。
我应该使用哪种 TemporalType 将 AM/PM 信息保存在数据库中?
【问题讨论】:
-
java.util.Date(所有这 3 个java.sql.类的父类)只是一个 long 的包装器,其中包含自纪元 (1970-01-01 00:00:00) 以来经过的毫秒数。 Timestamp 根本不存储 AM/PM 信息,这可能代表 AM。可能您需要更改数据库的配置或将输出日期格式化为提供HH(00-23) 而不是hh(01-12) 的格式。 -
只是评论,你说:...因为我的日期格式是
MMM dd, yyyy HH:mm:ss a注意HH是一天中的小时(0-23)所以上午/下午这种格式没有意义。如果它是hh(上午/下午 1-12 小时),那将是有意义的。 -
哇,我自己也看到了。让我把它改成“hh”,看看它是否有影响
-
是的,看起来这是我使用
HH而不是hh的原因。如果您愿意,可以将其作为答案。