我有一个数据库表,列的类型为TIMESTAMP(6)。我希望始终在该列的EST时间中存储时间戳。任何人都可以帮助如何构建一个带有EST时间的时间戳对象吗?
答案 0 :(得分:0)
通常,我们使用PreparedStatement #setTimestamp(int paramIndex,Timestamp ts)在DB中存储时间戳。它利用了' java.util.Date'在Java端和JDBC端的java.sql.Timestamp这样做。此调用将导致JDBC驱动程序计算JVM时区的时间。但是,时间戳与时区信息的存储在数据库中是最重要的。如果列不存储时区的信息,那么访问它的应用程序将需要处理它。
现在,如果您想将时间戳存储在与JVM TZ不同的时区中,那么您应该考虑使用:PreparedStatement#setTimestamp(int paramIndex, Timestamp ts, Calendar cal)
尝试一下,让我知道它是否有效。
Calendar cal = Calendar.getInstance(TimeZone.getTimeZone("EST"));
stmt.setTimestamp(10, ts, cal);