如何在Java中确定给定日期前一天的日期?

2022-09-03 08:26:14

我假设Java有一些内置的方法可以做到这一点。

给定一个日期,我如何确定该日期前一天的日期?

例如,假设我得到3/1/2009。上一个日期是 2009 年 2 月 28 日。如果我得到的是 2008 年 3 月 1 日,那么之前的日期应该是 2008 年 2 月 29 日。


答案 1

使用“日历”界面。

Calendar cal = Calendar.getInstance();
cal.setTime(myDate);
cal.add(Calendar.DAY_OF_YEAR,-1);
Date oneDayBefore= cal.getTime();

以这种方式进行“添加”可以保证您获得有效日期。这也适用于当年中的第 1 天,例如,如果是 2012 年 1 月 1 日,则为 2011 年 12 月 31 日。myDateoneDayBefore


答案 2

你也可以使用Joda-Time,一个非常好的Java库来操作日期:

DateTime result = dt.minusDays(1);