【问题标题】:date values saved to database are different with what they should be保存到数据库的日期值与它们应该是不同的
【发布时间】:2013-01-29 18:55:19
【问题描述】:

使用休眠和注释,我试图将值保存到具有日期列的表中(我使用的是 Mysql)。问题是保存到数据库的日期值与应有的不同。 首先我创建一个新的 java.sql.Date 例如

Date date = new Date(2013, 10, 1);

但保存到我的表中的是:

3913-02-10

【问题讨论】:

    标签: mysql hibernate date hibernate-annotations


    【解决方案1】:

    月份是从 0 开始的(所以 1 是二月),年份是从 1900 开始的(所以 2013 是 3913)。这在Date javadoc 中有解释。 javadoc 还说这个构造函数已被弃用,所以无论如何你都不应该使用它。

    【讨论】:

    • 我搜索了一下。似乎虽然构造函数和大多数方法已被弃用,但它适用于在数据库表中使用 JDBC 和日期。
    • @JB Nizet :另一点:) 好吧,当我得到 date.getYear() 时,它是 2013 年...。
    猜你喜欢
    • 2016-12-19
    • 2016-01-15
    • 2013-09-17
    • 2016-10-16
    • 2016-03-16
    • 2015-05-18
    • 1970-01-01
    • 1970-01-01
    • 2022-09-30
    相关资源
    最近更新 更多