Java MySQL已存储日期对象的时区

Java MySQL已存储日期对象的时区,java,mysql,date,Java,Mysql,Date,有没有人见过MySQL在将日期对象存储到表中时会混淆哪个时区适用于java.util.Date对象的情况?我看到一种情况,MySQL偶尔会应用偏移量为0的时区,然后其他时候MySQL会应用偏移量为-12的时区。我已经在这两种情况下调试了代码,代码一致地报告了偏移量为0的时区。你知道会发生什么吗?提前谢谢。日期对象没有时区。它只是指时间上的一瞬间 现在还不清楚你从哪里得到时区,但是如果你希望一个日期有一个相关的时区,你应该重新考虑你的设计。请展示一些代码。“MySQL是如何应用时区的”@Marcu

有没有人见过MySQL在将日期对象存储到表中时会混淆哪个时区适用于java.util.Date对象的情况?我看到一种情况,MySQL偶尔会应用偏移量为0的时区,然后其他时候MySQL会应用偏移量为-12的时区。我已经在这两种情况下调试了代码,代码一致地报告了偏移量为0的时区。你知道会发生什么吗?提前谢谢。

日期对象没有时区。它只是指时间上的一瞬间


现在还不清楚你从哪里得到时区,但是如果你希望一个日期有一个相关的时区,你应该重新考虑你的设计。

请展示一些代码。“MySQL是如何应用时区的”@MarcusAdams:它是全局的-瞬间就是瞬间。如果你想象两个不同国家的人打一个电话(没有延迟),他们都会同意“当前时间”的
java.util.Date
,即使他们对“现在”的本地解释不同。(从Unix时代开始,这种表示形式恰好是毫秒,在UTC中非常有效,但这只是一个任意的零点。)事实上,我理解并欣赏Java日期概念的优雅(在地球上的任何地方,某个瞬间都是同一个瞬间)。但是,我的用户关心时区,因为他们希望看到以本地时间(即任意的第三时区)表示的日期。因此,一旦检索到存储的日期,我就必须执行日期算术。@SamHeymann:这很好,但您不应该期望它作为
date
对象的一部分被持久化,您的问题似乎暗示了这一点。(实际上,Java日期/时间API通常很糟糕——Joda time的要好得多。但这是另一回事。)