【发布时间】:2011-03-01 20:39:11
【问题描述】:
我有一个 Java Web 应用程序,其中客户端将时间戳数据发送到服务器以存储在 MySQL 数据库中并稍后检索。这些时间戳应始终被视为本地时间,并且永远不会针对时区进行调整:如果一个时区的客户端输入 18:00:00 的时间,则它应该为另一个时区的客户端显示为 18:00:00。
保存此值的数据库列是 DATETIME 类型,因为我的印象是它不进行时区调整。 java 应用程序接收时间戳作为 java.util.Date 对象,并在将它们插入 PreparedStatements 之前将它们转换为 java.sql.Timestamp 对象。然而,在此过程中,当客户端和服务器位于不同的时区时,时间值会发生偏移。
为了让您了解我在寻找什么,我可以将所有时间戳存储为字符串,这正是我想要的效果,但对我来说必须格式化和解析字符串没有意义作为需要对其进行操作的日期。
当时间戳值应始终视为本地时间时,处理此类应用程序的常用方法是什么?
【问题讨论】: