Java日期输出错误。为什么?

Java日期输出错误。为什么?,java,date,Java,Date,我正在玩Java Date,无法理解这一点: Date myBirth = new Date(1991,01,21); Log.d("DATE: ", "" + myBirth); 这里我初始化了日期对象。为什么我得到这个输出 DEBUG/DATE:(31693): Sat Feb 21 00:00:00 EET 3891 从: 年份y由整数y-1900表示 一个月由0到11的整数表示;0是一月,1是二月,依此类推;因此,11月是12月 从: 年份y由整数y-1900表示 一个月由0到

我正在玩Java Date,无法理解这一点:

Date myBirth = new Date(1991,01,21);
Log.d("DATE: ", "" + myBirth);
这里我初始化了日期对象。为什么我得到这个输出

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

  • 年份y由整数y-1900表示
  • 一个月由0到11的整数表示;0是一月,1是二月,依此类推;因此,11月是12月
从:

  • 年份y由整数y-1900表示
  • 一个月由0到11的整数表示;0是一月,1是二月,依此类推;因此,11月是12月
引用此已弃用的构造函数的日期:

Parameters:
    year - the year **minus 1900**.
    month - the month between 0-11.
    date - the day of the month between 1-31.
因此,输出是您要求的,而不是您想要的。

引用此已弃用的日期构造函数:

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

因此,输出是您要求的,而不是您想要的。

一月是第0个月,二月是第1个月。您可能希望避免使用前导0写入数字文字。前导0告诉Java将数字解释为八进制。对于小于8的数字,这没有区别。但是010==8。此构造函数已弃用。看一看,1月是0月,2月是1月。您可能希望避免使用前导0编写数字文本。前导0告诉Java将数字解释为八进制。对于小于8的数字,这没有区别。但是010==8。此构造函数已弃用。看看对面的@AlexKulakovsky,你读过那份文件的其余部分了吗?特别是说你从1900年起通过了多少年?哎呀,我的原始答案中没有年份部分,现在更新了。@AlexKulakovsky,你读过该文档的其余部分了吗?特别是1900年以来的年数?哦,我的原始答案中没有年份部分,现在更新了。