0

根据我的阅读,在 JPA 中处理日期时可以选择 3 种类型的 TemportalTypes。他们是:

DATE
          Map as java.sql.Date
TIME
          Map as java.sql.Time
TIMESTAMP
          Map as java.sql.Timestamp

我以TIMESTAMPand 为例,它会像这样保留我的日期:2014-10-10 02:12:39

不过,我注意到的是,我的约会对象正在失去 AM/PM。假设我的日期以 String 的形式出现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 信息保存在数据库中?

4

2 回答 2

1

AM/PM/24H 只是日期的格式。在 java DateCalendar等中,将日期存储为 a long,其中包含自 01.01.1970 00:00:00 以来的毫秒数。

当我在 JPA 实体中存储日期时,我通常使用接口并使用(这将保留 hh:mm:ss 信息)Calendar注释字段:TemporalType.TIMESTAMP

@Temporal( TemporalType.TIMESTAMP )
privete Calendar lastUpdated;

总结一下:您不能在数据库中保留 AM/PM 信息,因为这取决于区域设置。例如,在我的国家,我们使用 24H 格式的日期,而您显然使用 12H+AM/PM。为了正确显示日期,您应该使用与用户区域设置相对应的格式。

于 2014-10-10T15:39:14.090 回答
0

嗯......不可能“失去”上午/下午 - 也许你应该阅读它实际上是什么:http : //en.wikipedia.org/wiki/12-hour_clock,http://en.wikipedia。 org/wiki/24-hour_clock

您只需要按照您想要的方式格式化您的时间/日期:https ://stackoverflow.com/a/18734471/351861

于 2014-10-10T15:39:05.283 回答