def getYesterdayDate() { def yesterday = new Date(); yesterday.setDate(yesterday.getDate() - 1); def df = new SimpleDateFormat("yyyy-MM-dd"); return df.format(yesterday)} 这段代码有错吗
时间: 2023-11-22 11:56:11 浏览: 86
Java如何获取Date的“昨天”与“明天”示例代码
这段代码没有语法错误,但是可能存在逻辑错误。代码的作用是获取昨天的日期,并将其格式化为"yyyy-MM-dd"的字符串形式。
但是,这段代码存在一个潜在的问题:当执行该代码的时间是在当天凌晨时,它将返回前天的日期,而不是昨天的日期。
为了避免这种问题,可以使用Joda-Time或Java 8中的新日期API来获取昨天的日期。以下是一个使用Java 8日期API的示例代码:
```
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
public class Example {
public static String getYesterdayDate() {
LocalDate yesterday = LocalDate.now().minusDays(1);
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
return yesterday.format(formatter);
}
}
```
该代码使用`LocalDate`类获取昨天的日期,并使用`DateTimeFormatter`将其格式化为"yyyy-MM-dd"的字符串形式。
阅读全文