Es gibt Bibliotheken, die dabei helfen:
Apache commons-lang
Wenn Sie Apache commons-lang in Ihrem Klassenpfad haben, können Sie DateUtils.truncate
die Daten auf ein Feld kürzen.
assertEquals(DateUtils.truncate(date1,Calendar.SECOND),
DateUtils.truncate(date2,Calendar.SECOND));
Dafür gibt es eine Abkürzung:
assertTrue(DateUtils.truncatedEquals(date1,date2,Calendar.SECOND));
Beachten Sie, dass 12: 00: 00.001 und 11: 59: 00.999 auf unterschiedliche Werte abgeschnitten werden, sodass dies möglicherweise nicht ideal ist. Dafür gibt es rund:
assertEquals(DateUtils.round(date1,Calendar.SECOND),
DateUtils.round(date2,Calendar.SECOND));
AssertJ
Ab Version 3.7.0 hat AssertJ Assertions hinzugefügt isCloseTo
, wenn Sie die Java 8 Date / Time API verwenden.
LocalTime _07_10 = LocalTime.of(7, 10);
LocalTime _07_42 = LocalTime.of(7, 42);
assertThat(_07_10).isCloseTo(_07_42, within(1, ChronoUnit.HOURS));
assertThat(_07_10).isCloseTo(_07_42, within(32, ChronoUnit.MINUTES));
Es funktioniert auch mit alten Java-Daten:
Date d1 = new Date();
Date d2 = new Date();
assertThat(d1).isCloseTo(d2, within(100, ChronoUnit.MILLIS).getValue());