首先我得到:
LocalDate today = LocalDate.now();
和第二
Date date = new Date();
date.setDate(Integer.valueOf(s[0]));
date.setMonth(Integer.valueOf(s[1]));
date.setYear(Integer.valueOf(s[2]));
LocalDate topicDate = date.toInstant().atZone(ZoneId.systemDefault()).toLocalDate();
如何检查第一个日期和第二个日期之间的差异是否为7天?
例如,今天是03-08-2015,第二个日期是20-07-2015,差异超过7天,但如何检查?
我应该将日期转换为毫秒吗?
答案 0 :(得分:0)
我相信这仍然是目前最好的方式。 您可以在此处查看有关此主题的一些见解: Calculate date/time difference in java
答案 1 :(得分:0)
您可以转换为毫秒,或者您可以单独检查年份是否更大,然后如果它们是相同的检查以查看月份是否大于检查日。转换为毫秒很容易。
答案 2 :(得分:0)
我相信你正在寻找这样的东西:
Date date = /*your date object you want to compare*/;
Instant now = Instant.now();
Instant sevenDaysFromYourDate = Instant.ofEpochMilli(date.getTime()).plus(Duration.ofDays(7));
if (now.isAfter(sevenDaysFromYourDate)) {
//today is more than seven days past date
}
答案 3 :(得分:0)
由于您使用的是Java 8 library(data.table)#v1.9.5+
library(splitstackshape)
dcast(getanID(data, c('id', 'date')), id+date+description~
paste('schedule', .id, sep="."), value.var='value')
,因此可以使用LocalDate
类的plusDays
或minusDays
方法。
此外,您不应该使用(旧的,不推荐使用)LocalDate
对象来创建第二个日期。最好使用java.util.Date
来构建年,月,日的日期。
示例代码:
LocalDate.of
请注意,您也可以使用 LocalDate today = LocalDate.now();
LocalDate topicDate = LocalDate.of(
Integer.valueOf(s[2]),
Integer.valueOf(s[1]),
Integer.valueOf(s[0]));
System.out.println(today);
System.out.println(topicDate);
if ( today.minusDays(7).equals(topicDate)) {
System.out.println( "Exactly a week difference between today and topicDate");
} else if ( today.minusDays(7).compareTo(topicDate) > 0 ) {
System.out.println("TopicDate is more than a week before today");
} else {
System.out.println("TopicDate is less than a week before today");
}
来获得完全相等 - 我只是想证明为了相等,compareTo
也可以。
当然,还有equals
和isAfter
方法也能以优雅的方式进行比较。
答案 4 :(得分:0)
LocalDate today = LocalDate.now();
if (topicDate.isAfter(today.plusDays(7))) {
System.out.println("Yes");
}
else {
System.out.println("No");
}