在java中,Date()方法返回一个值.但我很困惑

Ven*_*kat 2 java date

我用来Date()获取我的生日日期,但它返回了本月的不匹配.我的生日是04年3月4日至87日.所以我给了一个输入,

Date birthDay= new Date(87,03,04,8,30,00);
Run Code Online (Sandbox Code Playgroud)

但它会返回正确的年,日和时间.但是月份是个问题.它显示4月份.

这有什么问题?

Buh*_*ndi 7

月份设置为0到11,1月= 0,2月= 1,...,12月= 11.

所以,四月做这个:

Date birthDate = new Date(87,02,04,8,30,00); //March = 2
Run Code Online (Sandbox Code Playgroud)

希望这可以帮助;

编辑

不推荐使用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();
Run Code Online (Sandbox Code Playgroud)

(它会返回与你要求的相同的东西)


Gre*_*ill 5

Date班级中的月份从1开始为0,因此3月是2,而不是3.

此外,Date(int, int, int, int, int, int)不推荐使用构造函数,因此您应该考虑使用Calendar该类.

最后,小心Java中的前导零 - 它们代表八进制常量.这个数字09不符合你的期望.