为什么在这个Java应用程序中创建从年、月和日开始的新日期时会得到错误的结果?
我在用Java创建日期时遇到了一些问题,从年、月和日开始 因此,我创建了一个简单实用的方法来创建我的日期:为什么在这个Java应用程序中创建从年、月和日开始的新日期时会得到错误的结果?,java,date,Java,Date,我在用Java创建日期时遇到了一些问题,从年、月和日开始 因此,我创建了一个简单实用的方法来创建我的日期: private Date creaDataNascita(int birthYear, int birthMonth, int birthDay) { Date dataNascita = new Date(birthYear, birthMonth, birthDay); return dataNascita; } 我使用调试器检查了输入参数的以下值: birth
private Date creaDataNascita(int birthYear, int birthMonth, int birthDay) {
Date dataNascita = new Date(birthYear, birthMonth, birthDay);
return dataNascita;
}
我使用调试器检查了输入参数的以下值:
birthYear = 1984
birthMonth = 4
birthDay = 12
问题是这一行:
Date dataNascita = new Date(birthYear, birthMonth, birthDay);
给我创造了一个奇怪的日期,它的价值实际上是:12-mag-3884
为什么??怎么了?我错过了什么?如何解决此问题?如javadoc中所述: Dateint年,int月,int日 不赞成。 而是使用构造函数Datelong date 日期 使用给定的毫秒时间值构造日期对象。 如中所述 Date类已弃用,请改用Calendar.set。Javadoc注释 年份y由整数y-1900表示。 一个月由0到11的整数表示;0是一月,1是二月,依此类推;因此,11月是12月。 要使用不推荐使用的Date构造函数获得正确的日期,它需要类似于new DatebirthYear-1900,birthMonth-1,Birth;但我更喜欢 输出为
1984-04-12
不要使用日期构造函数-它已被弃用,它的错误java文档说了什么?请在发布之前搜索堆栈溢出。你的问题已经被处理过很多次了。它被弃用与它产生的价值有什么关系?值是随机的吗?java.util.Date类没有被弃用。它的许多方法和构造函数都是,但类本身不是。
1984-04-12