Java日历中前一天的错误

问题描述 投票:0回答:1

我想在Java中使用Calender获得前一天。我正在使用下面的代码。

Calendar now = Calendar.getInstance();
now.add(Calendar.DATE, -1);
now.add(Calendar.MONTH, -2);

MyDate = now.get(Calendar.MONTH) + "/" + now.get(Calendar.DATE) + "/" + now.get(Calendar.YEAR);

System.out.println(MyDate);

输出:2/31/2020

以上问题并非始终有效。如上所述,如果当前日期为03/01/2020,则会获得以上结果。但是,Febraury不能具有31Calendarlib中是否有选项可以处理此问题?

并且如果我在下面使用格式化,它会给出完全不同的值。

Calendar now = Calendar.getInstance();
now.add(Calendar.DATE, -1);
now.add(Calendar.MONTH, -2);
SimpleDateFormat df = new SimpleDateFormat("MM/DD/YYYY");
String MyDate= df.format(now.getTime());

System.out.println(MyDate);

输出:03/91/2020

java-8 calendar
1个回答
0
投票

您的日期格式不是您想要的。尝试以下操作:

Calendar now = Calendar.getInstance();
now.add(Calendar.DATE, -1);
now.add(Calendar.MONTH, -2);
SimpleDateFormat df = new SimpleDateFormat("MM/dd/yyyy");
String MyDate= df.format(now.getTime());

System.out.println(MyDate);
© www.soinside.com 2019 - 2024. All rights reserved.