根据我的阅读,在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信息保存在数据库中?
答案 0 :(得分:1)
AM / PM / 24H只是日期的格式。在java Date
中,Calendar
等将日期存储为long
,其中包含自01.01.1970 00:00:00以来的毫秒数。
当我在JPA实体中存储日期时,我通常使用Calendar
接口并使用TemporalType.TIMESTAMP
注释该字段(这将保留hh:mm:ss信息):
@Temporal( TemporalType.TIMESTAMP )
privete Calendar lastUpdated;
总结:您无法在数据库中保留AM / PM信息,因为这是依赖于区域设置的。例如在我的国家,我们使用24H格式的日期,而你显然使用12H + AM / PM。为了正确显示日期,您应该使用与用户的区域设置相对应的格式。
答案 1 :(得分:0)
您只需要按照您希望的方式格式化您的时间/日期:https://stackoverflow.com/a/18734471/351861