2017-04-01 55 views
-2

的错误我写这篇文章的代码这在Date类或我的错误(Java /机器人)

Date xx2 = new Date(2017,3,31); 
Date xx3 = new Date(2017,4,1); 

Assistance.print("--> y:"+xx2.getYear()+" m:"+xx2.getMonth()+" d:"+xx2.getDate()); 
Assistance.print("--> y:"+xx3.getYear()+" m:"+xx3.getMonth()+" d:"+xx3.getDate()); 

,但我得到同样的结果!

结果:

- > Y:2017米:4 d:1

- > Y:2017米:4 d:1

什么?

+1

java.util.Date中的月份从0开始,因此4个ias实际上可能是5月份 –

+1

1月份是0,2月份是1,3月份是2,4月份是3,可能是4份......但是这里有常量 – EpicPandaForce

+1

它是不是bug,而是有史以来最糟糕的设计选择(使1月份为零) – 2017-04-01 17:29:52

回答

0

本月有0个索引。一月== 0,所以日期xx2是4月31日。日历上没有这样的日期。 4月初的第31天是5月1日。这就是为什么两个日期都一样。

1

您需要阅读的构造 Date(int year, int month, int day) 仔细的javadoc的,尤其是

month - 0-11

因此之间的一个月,new Date(2017,3,31)是 4月31日,和new Date(2017,4,1)是五月01,实际上是同一天(因为四月只有30天)。