2012-10-22 82 views
0

我'与Java日期打,不能明白这一点:Java日期输出错误。为什么?

Date myBirth = new Date(1991,01,21); 
Log.d("DATE: ", "" + myBirth); 

在这里,我初始化的Date对象。为什么我得到这个输出?

DEBUG/DATE:(31693): Sat Feb 21 00:00:00 EET 3891 
+2

1月是第0个月,2月是第1个月。 –

+1

您可能希望避免编写以0为前导的数字文字。前导0表示Java将该数字解释为八进制数。对于少于8的数字,这没有区别。然而010 == 8. – Dunes

+1

这个构造函数已被弃用。看看http://stackoverflow.com/questions/7661723/how-do-i-set-custom-date-in-android – vfcosta

回答

3

Date docs

  • 一年y由整数y所表示 - 1900
  • 一个月由从0到11的整数表示; 0是1月,1是2月,等等;因此11月是12月。
+1

@AlexKulakovsky,你读过那篇文档的其余部分了吗?具体来说,你说1900年以来的年数通过了多少? –

+0

谢谢。对不起,这个简单的问题.. –

+0

哎呀,离开了我的原始答案的一年的一部分,现在更新。 –

1

从这个the Javadoc引用过时构造日期:

Parameters: 
    year - the year **minus 1900**. 
    month - the month between 0-11. 
    date - the day of the month between 1-31. 

所以输出你问什么,而不是你想要的。