This question already has answers here:
What is the most recommended way to store time in PostgreSQL using Java?
(3个答案)
5年前关闭。
对于数据库中基于事件的列(如createdDate),我要存储一个UTC值。
如果我现在所做的能正确解决我的问题,我正在寻求建议。
在postgresql中,我将使用不带时区列的时间戳
在scala(类似于java)代码中,我将生成如下时间戳:
我会把这个值保存到数据库中。我所有的服务器时间将同步。
现在在数据库级别,我正在存储一个纯UTC值。
当我从数据库中检索数据时,我将使用Joda-Time从数据库中获取时间戳值,然后将该值转换为特定时区。
这是联合技术公司的正确做法吗?
我在这里遗漏了什么吗,因为当你在谷歌上搜索时,这个话题让人困惑:)
注:这是一个全新的项目,所以我可以改变周围的事情没有问题。
更新
在步骤2中,如果我只是将原始currentMs值存储在一个长列中,而不是存储java.sql.Timestamp中的值。然后在UI中,我将根据登录的用户将unix时间转换为特定的时区。
这合适吗?
(3个答案)
5年前关闭。
对于数据库中基于事件的列(如createdDate),我要存储一个UTC值。
如果我现在所做的能正确解决我的问题,我正在寻求建议。
在postgresql中,我将使用不带时区列的时间戳
在scala(类似于java)代码中,我将生成如下时间戳:
val currentMs: Long = System.currentTimeMillis
new java.sql.Timestamp(currentMs)
我会把这个值保存到数据库中。我所有的服务器时间将同步。
现在在数据库级别,我正在存储一个纯UTC值。
当我从数据库中检索数据时,我将使用Joda-Time从数据库中获取时间戳值,然后将该值转换为特定时区。
这是联合技术公司的正确做法吗?
我在这里遗漏了什么吗,因为当你在谷歌上搜索时,这个话题让人困惑:)
注:这是一个全新的项目,所以我可以改变周围的事情没有问题。
更新
在步骤2中,如果我只是将原始currentMs值存储在一个长列中,而不是存储java.sql.Timestamp中的值。然后在UI中,我将根据登录的用户将unix时间转换为特定的时区。
这合适吗?
最佳答案
What is the most recommended way to store time in PostgreSQL using Java?的可能副本
注意,不管数据类型名是什么,postgresql实际上并不存储时区。
也可以在http://greybeardedgeek.net/2012/11/24/java-dates/上查看我的博客文章