2010-03-06 67 views
2

我用Date()获取我的生日日期,但它返回了月份的不匹配。我的生日是87年3月4日。所以我给了一个输入,在java中,Date()方法返回一个值。但我很困惑,

Date birthDay= new Date(87,03,04,8,30,00); 

但它返回正确的年份,日期和时间。但月份是问题。它显示四月份。

这是什么问题?

+0

你可以给你正在努力实现 – gmhk 2010-03-06 08:13:55

回答

7

个月从0设置为11,一月= 0,日= 1,...,十二月= 11

所以,四月做到这一点:

Date birthDate = new Date(87,02,04,8,30,00); //March = 2 

希望这有助于;

EDIT

Date类与此构造public Date(int year, int month, int date, int hrs, int min)被弃用(即,它已经被宣布@Deprecated)。

反而这样做。

Calendar calendar = Calendar.getInstance(); 
Calendar.set(1987, 2, 4, 0, 0, 0); 
Date birthDate = calendar.getTime(); 

(它会返回同样的事情,你要的)

5

Date类月份从0开始的月份,所以三月是2,而不是3

此外,Date(int, int, int, int, int, int)构造已过时,所以你应该考虑使用Calendar类代替。

最后,要小心Java中的前导零 - 它们表示八进制常量。号码09不会做你期望的。

+0

+1约八进制警告什么位简短。 – Grundlefleck 2010-03-06 09:44:36