答案 1
日期可以通过单个语句进行比较,因此为什么需要特殊函数。
当 dateTime
是 DateTime() 的对象时
if((dateTime.toLocalDate()).equals(new LocalDate()))
当 date
是 java.util.date 的对象时
if((new DateTime(date).toLocalDate()).equals(new LocalDate()))
什么Joda时间课程更适合这个?本地日期?日期时间?
了解您需要知道什么是LocalDate和DateTime。
LocalDate()
是不可变的日期时间类,表示没有时区的日期。所以没有时间部分。
DateTime()
是不可修改的日期时间类的标准实现。它具有 Date 的所有属性,其中包括 、 和 。date
time
timezone
因此,如果您需要比较日期和时间,最好使用,如果您只需要检查必须使用的日期,因为datetime将产生如果使用运算符,除非包括秒部分的时间对于两个对象是相同的。datetime
localDate
false
.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;
}
推荐
-
-
解析日期格式时的 Java 时区tl;博士国际标准化组织 ISO 8601避免旧的日期时间类使用 java.time关于 java.time 我有解析日期的代码,如下所示: 它工作正常,突然间,它停止工作了。事实证明,管理员在服务器上进行了一些配置更改,并且日期当前返回为“2010-12-27T10:50:44.000-08:00”,上述模式无
-
Java 8 - 将 LocalDate 转换为 OffsetDateTime 我想知道是否可以在Java 8中从LocalDate转换为OffsetDateTime。 例如,假设我得到了这个LocalDate: 假设我们知道时区,例如美国/圣地亚哥。
-
在java中将iso8601日期转换为unix时间戳tl;博士java.time城大时间Unix Timestamp关于 java.time 我有一个日期字符串 如何将上述字符串转换为unix时间戳?谢谢
-
如何使用 DateTimeFormatter 解析非标准月份名称 我需要解析以下列形式的(德语)日期: 但是,模式和模式都不符合缩短的日期。当然,我可以使用以下模式来匹配缩短的月份,但是我无法匹配3和4个字符的月份。我知道我可以有两个格式