Java 我想在日期中添加月份,比如2021年6月5日到2021年6月6日,但只会增加天数,而不会增加月份和年份

Java 我想在日期中添加月份,比如2021年6月5日到2021年6月6日,但只会增加天数,而不会增加月份和年份,java,android,performance,date,Java,Android,Performance,Date,我想在另一个日期中增加2个月,但他只在日期中增加了60天,并且在日期的月份和年份中并没有增加。 我使用以下代码在另一个日期中添加日期。天数添加正确,但日期月份没有增加。如果我加上60天,那么他加上,但同样地,月份和年份都没有增加。如果有人帮我解决问题,我真的非常感谢 字符串dob=“06/05/2021”; SimpleDataFormat sdf=新的SimpleDataFormat(“日/月/年”); Calendar c=Calendar.getInstance(); 试一试{ c、 设置

我想在另一个日期中增加2个月,但他只在日期中增加了60天,并且在日期的月份和年份中并没有增加。 我使用以下代码在另一个日期中添加日期。天数添加正确,但日期月份没有增加。如果我加上60天,那么他加上,但同样地,月份和年份都没有增加。如果有人帮我解决问题,我真的非常感谢

字符串dob=“06/05/2021”;
SimpleDataFormat sdf=新的SimpleDataFormat(“日/月/年”);
Calendar c=Calendar.getInstance();
试一试{
c、 设置时间(sdf.parse(dob));
}捕获(解析异常){
e、 printStackTrace();
}
c、 添加(日历日期,60);
c、 添加(日历月,2);//不起作用
sdf=新的简化格式(“日/月/年”);
Date resultdate=新日期(c.getTimeInMillis());
字符串incToDate=sdf.format(resultdate);
Toast.makeText(this,incToDate,Toast.LENGTH_SHORT).show();

您的模式不正确,它基本上读取月份的两位数/小时的两位数/年的四位数。我猜您不希望在这种模式下有任何时间,所以将小写字母改为大写字母

如果您可以使用
java.time
,您可以得到如下所示的结果:

import java.time.LocalDate;
导入java.time.format.DateTimeFormatter;
公共班机{
公共静态void main(字符串[]args){
//以字符串形式提供一个日期示例
字符串dob=“06/05/2021”;
//创建一个格式化程序,它可以解析给定格式的字符串
DateTimeFormatter dtf=模式的DateTimeFormatter.of(“dd/MM/UUU”);
//使用先前定义的格式化程序将字符串解析为LocalDate
LocalDate localDob=LocalDate.parse(dob,dtf);
//打印(格式化)结果以查看解析是否有效
System.out.println(“刚解析”+localDob.format(dtf));
//添加两个月并打印结果短语
LocalDate localdobtowmonthslater=localDob.plusMonths(2);
System.out.println(“添加两个月的结果”
+localdobtowmonthslater.format(dtf));
//为完整起见,请添加60天并打印结果
LocalDate localDobSixtyDaysLater=localDob.plusDays(60);
System.out.println(“添加60天结果”
+localDobSixtyDaysLater.format(dtf));
}
}
此代码打印

刚刚解析2021年5月6日
2021年7月6日新增两个月业绩
2021年7月5日增加60天结果

您的模式不正确,它基本上读取月份的两位数/小时的两位数/年的四位数。我猜您不希望在这种模式下有任何时间,所以将小写字母改为大写字母

如果您可以使用
java.time
,您可以得到如下所示的结果:

import java.time.LocalDate;
导入java.time.format.DateTimeFormatter;
公共班机{
公共静态void main(字符串[]args){
//以字符串形式提供一个日期示例
字符串dob=“06/05/2021”;
//创建一个格式化程序,它可以解析给定格式的字符串
DateTimeFormatter dtf=模式的DateTimeFormatter.of(“dd/MM/UUU”);
//使用先前定义的格式化程序将字符串解析为LocalDate
LocalDate localDob=LocalDate.parse(dob,dtf);
//打印(格式化)结果以查看解析是否有效
System.out.println(“刚解析”+localDob.format(dtf));
//添加两个月并打印结果短语
LocalDate localdobtowmonthslater=localDob.plusMonths(2);
System.out.println(“添加两个月的结果”
+localdobtowmonthslater.format(dtf));
//为完整起见,请添加60天并打印结果
LocalDate localDobSixtyDaysLater=localDob.plusDays(60);
System.out.println(“添加60天结果”
+localDobSixtyDaysLater.format(dtf));
}
}
此代码打印

刚刚解析2021年5月6日
2021年7月6日新增两个月业绩
2021年7月5日增加60天结果

mm
代表分钟。使用
MM
表示月份是的,真正的答案是:您必须知道您在代码中输入的字符的含义。含义:javadoc明确地告诉您格式化模式中这些字符的含义。。。不要只使用你在某处发现的东西。然后进行研究,了解它们来自何处,以及它们的含义。
mm
只需几分钟。使用
MM
表示月份是的,真正的答案是:您必须知道您在代码中输入的字符的含义。含义:javadoc明确地告诉您格式化模式中这些字符的含义。。。不要只使用你在某处发现的东西。然后进行研究,了解它们来自哪里,以及它们的意思。@GhostCat确切的单词并不重要。。。关键是重要的;-)谢谢兄弟,在我自己的代码中只更改了代码的格式之后,它工作得很好。再次感谢you@Muhammad不客气!如果对你有帮助,请考虑接受和支持我的回答。谢谢@幽灵猫确切的话并不重要。。。关键是重要的;-)谢谢兄弟,在我自己的代码中只更改了代码的格式之后,它工作得很好。再次感谢you@Muhammad不客气!如果对你有帮助,请考虑接受和支持我的回答。谢谢