我想有一个简单的解决方案来比较Java中的两个Instant对象.比较规则应基于日期而不是时间.
public boolean isAfterBasedOnDate(Instant instant, Instant compareTo) {
//TODO
}
Run Code Online (Sandbox Code Playgroud)
例如,
有没有简单的方法呢?
Dee*_*ala 15
截断Instant天数,然后比较截断的值.
public static void main(String[] args) {
Instant now = Instant.now();
System.out.println(now);
Instant truncated = now.truncatedTo(ChronoUnit.DAYS);
System.out.println(truncated);
}
Run Code Online (Sandbox Code Playgroud)
Run Code Online (Sandbox Code Playgroud)2015-01-07T06:43:30.679Z 2015-01-07T00:00:00Z
在对象上使用truncatedTo-方法Instant只能获取天数。
public boolean isAfterBasedOnDate(Instant instant, Instant compareTo) {
return instant.truncatedTo(ChronoUnit.DAYS)
.isAfter(compareTo.truncatedTo(ChronoUnit.DAYS));
}
@Test
public void test() {
Assert.assertFalse(isAfterBasedOnDate(
Instant.parse("2013-01-03T00:00:00Z"),
Instant.parse("2013-01-03T15:00:00Z")));
Assert.assertFalse(isAfterBasedOnDate(
Instant.parse("2013-01-03T15:00:00Z"),
Instant.parse("2013-01-03T00:00:00Z")));
Assert.assertFalse(isAfterBasedOnDate(
Instant.parse("2013-01-02T15:00:00Z"),
Instant.parse("2013-01-03T00:00:00Z")));
Assert.assertTrue(isAfterBasedOnDate(
Instant.parse("2013-01-04T15:00:00Z"),
Instant.parse("2013-01-03T00:00:00Z")));
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
12841 次 |
| 最近记录: |