2017-04-01 35 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天)。