Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/342.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,我正在写一个方法来获取3个整数的DOB-日、月、年,并返回格式化版本DD/MM/YYYY 我目前正在使用dateFormatter和simple date格式。虽然当我运行此命令时,它默认为1970年1月1日,并且我无法更改日期 有什么建议吗 更新 伙计们感谢下面的帖子,问题解决了 为什么要使用格式化程序?只要这样做: public String DateOfBirth(int day, int month, int year) { String DOB = day + "/"

我正在写一个方法来获取3个整数的DOB-日、月、年,并返回格式化版本DD/MM/YYYY

我目前正在使用dateFormatter和simple date格式。虽然当我运行此命令时,它默认为1970年1月1日,并且我无法更改日期

有什么建议吗

更新


伙计们感谢下面的帖子,问题解决了

为什么要使用格式化程序?只要这样做:

   public String DateOfBirth(int day, int month, int year) 
{
    String DOB = day + "/" + month + "/" + year;

    return DOB;
}
如果是作业,老师可能希望你不要使用格式化程序

另外,正如其他人提到的:如果您试图将整数连接为字符串,则需要在两者之间插入一些字符串。否则就是对整数的值求和。

tl;博士 2017年1月23日

java.time 现代方法使用java.time类

避免使用旧的遗留日期时间类,例如
日期
日历
,因为它们设计糟糕、容易混淆、麻烦且有缺陷

LocalDate
LocalDate
表示一个仅限日期的值,该值不包含一天中的时间和时区。请注意,与遗留类不同,此处月份的编号为1-12,表示1月至12月

LocalDate ld = LocalDate.of( 2017 , 1 , 23 );
DateTimeFormatter
使用格式化程序对象生成表示该值的字符串

DateTimeFormatter f = DateTimeFormatter.ofPattern( "dd/MM/uuuu" );

String output = ld.format( f );

DateFormat用于格式化java.util.Date的实例。不是整数。顺便说一句,现在有办法找出一个数字的日、月和年的三部分之和。使用LocalDate:很高兴听到问题解决了。考虑投票和/或接受答案/ S。如果小于10,例如2017年2月4日,这将为您提供一位数的日期和月份。我把这个问题理解为要求两位数,比如2017年4月2日。如果您关于避免使用标准类的假设是正确的(我希望不是),那么可以使用
String.format()
DateTimeFormatter f = DateTimeFormatter.ofPattern( "dd/MM/uuuu" );

String output = ld.format( f );