【问题标题】:Date inconsistency between database and web application数据库和 Web 应用程序之间的日期不一致
【发布时间】:2012-01-20 16:52:47
【问题描述】:

我有一个在前端接收日期的 spring webapp。只是约会,没有时间。然后,我将这些日期存储在 java Date 对象中,它们最终在 mysql 数据库中的 Date 对象中。最初,我遇到了数据库和前端之间的日期不对齐的问题。日期将在数据库中显示 12-15-2011,在前端显示为 12-14-2011。不过我设法修复了它并同步了它(我想我阻止了它在时间方面的格式化)。

无论如何,现在我正在将 web 应用程序移动到我的服务器(这显然是在 GMT 中,而我的开发框在 EDT 中),问题又出现了。我在前端输入一个日期为 12-15-2011,它会传播到数据库并存储为 12-15-2011。伟大的。但是当我稍后显示该对象时,它显示为 12-14-2011。我猜这与我的机器是 EDT 和服务器是 GMT 有关,但我该如何防止这种情况呢?我只想存储日期,没有时间。我是否必须停止使用 Date 对象而只使用字符串?任何帮助将不胜感激。

【问题讨论】:

    标签: java mysql database spring date


    【解决方案1】:

    Java 没有“只有日期,没有时间”的概念(JodaTime 有,普通 Java 没有)。所以当你输入一个没有时间的日期时,时间设置为 00:00:00。

    您应该尝试弄清楚如何将服务器的时区设置为您的。

    【讨论】:

    • 我曾经研究过使用 JodaTime,但如果我没记错的话,将 JodaTime 对象输入到服务器上的 Date 列中似乎存在问题。关于如何做到这一点的任何建议?我是否必须将其从 JodaTime 对象转换为 Java Date 对象?不过感谢您的回复。
    【解决方案2】:

    这个答案有点笼统,我知道,但如果它与 TimeZone 有关,请查看joda-time。可能有用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-11-11
      • 1970-01-01
      • 2017-02-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多