Joda-Time有一种叫做isToday的方法吗?

2022-09-03 03:10:22

我需要检查给定的时间戳是否是今天。我正在使用Joda-Time。有没有一种方法或简单的方法来检查这一点?什么Joda-Time课程更适合这个?本地日期日期时间


答案 1

日期可以通过单个语句进行比较,因此为什么需要特殊函数。

dateTimeDateTime() 的对象时

if((dateTime.toLocalDate()).equals(new LocalDate()))

datejava.util.date 的对象时

 if((new DateTime(date).toLocalDate()).equals(new LocalDate()))

什么Joda时间课程更适合这个?本地日期?日期时间?

了解您需要知道什么是LocalDate和DateTime。

LocalDate()是不可变的日期时间类,表示没有时区的日期。所以没有时间部分。

DateTime()是不可修改的日期时间类的标准实现。它具有 Date 的所有属性,其中包括 、 和 。datetimetimezone

因此,如果您需要比较日期和时间,最好使用,如果您只需要检查必须使用的日期,因为datetime将产生如果使用运算符,除非包括秒部分的时间对于两个对象是相同的。datetimelocalDatefalse.equal


答案 2

以下是一些简单的方法来检查DateTime是今天,明天还是昨天:

public boolean isToday(DateTime time) {
   return LocalDate.now().compareTo(new LocalDate(time)) == 0;
}

public boolean isTomorrow(DateTime time) {
   return LocalDate.now().plusDays(1).compareTo(new LocalDate(time)) == 0;
}

public boolean isYesterday(DateTime time) {
   return LocalDate.now().minusDays(1).compareTo(new LocalDate(time)) == 0;
}