首页 > 解决方案 > 如何从用户在java中输入的日期获取明年日期

问题描述

下面是返回错误日期的代码

String dt = "01-08-2021";
SimpleDateFormat format = new SimpleDateFormat("dd-mm-yyyy");
Date date = new SimpleDateFormat("dd-mm-yyyy").parse(dt);
       
Calendar cal = Calendar.getInstance();
cal.setTime(date);
cal.add(Calendar.DATE, -1);
cal.add(Calendar.YEAR, 1);
      
date = cal.getTime();
System.out.println(format.format(date));

它打印为 31-08-2021,它假设打印 31-07-2022。如果我通过 02-08-2021,它会在 2022 年 1 月 8 日完美运行我使用的是 java1.7。谁可以帮我这个事。

标签: java-7

解决方案


不确定这是否是问题......但是:您使用 SimpleDateFormat 错误。MM代表月份。mm代表分钟。见这里:https ://docs.oracle.com/javase/7/docs/api/java/text/SimpleDateFormat.html


推荐阅读