Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/223.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
这是Date类中的错误或我的错误(Java/android)_Java_Android_Date - Fatal编程技术网

这是Date类中的错误或我的错误(Java/android)

这是Date类中的错误或我的错误(Java/android),java,android,date,Java,Android,Date,我写这个代码 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()); 但我得到

我写这个代码

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 m:4 d:1

-->y:2017 m:4 d:1


什么?

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

您需要阅读构造函数的javadoc 特别小心

月份
-0-11之间的月份

因此,
新日期(2017年3月31日)
为4月31日,
新日期(2017,4,1)是5月1日,实际上是同一天(因为4月只有30天)。

java.util.Date中的月份从0开始,所以4个ias实际上是MayJanuary是0,二月是1,三月是2,四月是3,五月是4。。。但这是一个常数。这不是一个bug,但这是有史以来最糟糕的设计选择(1月为零)。请在发布前搜索堆栈溢出。这个问题已经被讨论过很多次了。它从来不是API,而是程序员。(好吧,差不多了。一个人永远不应该说绝对的。)