持久化时间戳以实现平台中立消费的首选方式

时间:2013-03-04 14:53:16

标签: java timezone timestamp jpa-2.0 jodatime

所以,基本上我有一个JPA + Spring Data + Hibernate应用程序,我在其中存储日期和时间。时间对象。

想象一下,我们有以下情况:

  

这是一个存储“签到”数据的服务器 - 就像一个位置   办理登机手续服务的存放处,即Foursquare。

     

来自此存储库服务的数据在REST API中使用,而REST API又是   由Android / iOS / etc客户使用。

     

现在,除纬度/经度,userId等之外的每次办理登机手续时,我都会在办理登机手续时设置时间戳。

我应该如何存储此时间戳?我应该有java.util.Date对象还是Joda Time对象?我应该保留时区数据还是在持久化之前将其从时间戳中删除并使用另一个TimeZone字段?

1 个答案:

答案 0 :(得分:1)

真正重要的是,当您通过网络发送数据时,它是以通用格式序列化的。如今最普遍的格式是ISO8601

由于这是在特定位置的登记,因此最合适的形式是具有偏移的本地日期/时间。在ISO8601格式中,它看起来像:

2012-12-01T12:34:56-0700

我不是Java程序员,但我相信JodaTime DateTime具有最正确的实现。