Java日历中的前一天时间不正确
我想在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
,则会得到上述结果。但是二月不可能有31
。在Calendar
lib中有处理这个问题的选项吗
如果我使用下面的格式,它会给出完全不同的值
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
# 1 楼答案
你的日期格式不是你想做的。请尝试以下方法获取前一个日期(昨天):
根据documentation
"YYYY"
是一周一年,"DD"
是一年中的da注意:按照惯例,java中的变量名是小写的
# 2 楼答案
爪哇。时间
一定要使用java。时间,现代Java日期和时间API,用于日期和时间工作。它比旧的、设计糟糕的、过时的日期时间类(包括
Calendar
和SimpleDateFormat
)要好得多当你需要将日期格式化为字符串时,一定要使用格式化程序
我今天(2020年3月2日)跑步时的输出:
教程链接:Oracle tutorial: Date Time讲解如何使用java。时间到了