Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/316.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.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
为什么在这个Java应用程序中创建从年、月和日开始的新日期时会得到错误的结果?_Java_Date - Fatal编程技术网

为什么在这个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

我在用Java创建日期时遇到了一些问题,从年、月和日开始

因此,我创建了一个简单实用的方法来创建我的日期:

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