java.sql.date的问题

时间:2011-04-21 20:39:19

标签: java jdbc

 public java.sql.Date getDate()
{
    java.sql.Date date = new java.sql.Date(2001, 10, 10);
    return date;

}

此函数位于自己编写的日历类中。

现在我写的另一个班:

calendar c = new calendare();
java.sql.date d = c.getDate();

必须在d中存储什么值?它必须是2001,10,10但它是3901,11,10 !!!!! 为什么? 请帮我解决。

3 个答案:

答案 0 :(得分:2)

尝试:

java.sql.Date date = new java.sql.Date(2001 - 1900, 10, 10);

请参阅java.sql.Date说明:

  年 - 减去1900年;必须是0到8099.(注意8099是9999减去1900。)

不推荐使用该构造函数。您应该更喜欢使用其他java.sql.Date构造函数。

答案 1 :(得分:2)

这是来自java.sql.Date的文档

year - the year minus 1900; must be 0 to 8099. (Note that 8099 is 9999 minus 1900.)
month - 0 to 11
day - 1 to 31

此建构程序也已弃用。年份值加上tp 1900

答案 2 :(得分:0)

首先,不推荐使用该构造函数,不应该使用它。

其次,JavaDoc提到:

Parameters:
    year - the year minus 1900; must be 0 to 8099. 
    (Note that 8099 is 9999 minus 1900.)

因此,根据文档,您确实指定了2001 + 19003901: - )