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

Wil*_*del 15 java date leap-year

我假设Java有一些内置的方法来做到这一点.

在给定日期的情况下,如何确定该日期前一天的日期?

例如,假设我被授予3/1/2009.上一个日期是2009年2月28日.如果我获得了3/1/2008,那么上一个日期将是2/29/2008.

Mik*_*one 46

使用日历界面.

Calendar cal = Calendar.getInstance();
cal.setTime(myDate);
cal.add(Calendar.DAY_OF_YEAR,-1);
Date oneDayBefore= cal.getTime();
Run Code Online (Sandbox Code Playgroud)

以这种方式进行"添加"可确保您获得有效日期.这也适用于一年中的第一年,例如,如果myDate是2012年1月1日,oneDayBefore将是2011年12月31日.


Vla*_*mir 8

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

DateTime result = dt.minusDays(1);
Run Code Online (Sandbox Code Playgroud)


Vin*_*tas 5

使用 java.time.Instant

Date.from(Instant.now().minus(Duration.ofDays(1)))
Run Code Online (Sandbox Code Playgroud)