Skip to content

Commit a08f136

Browse files
author
Erik Pragt
authored
Merge pull request eugenp#8399 from AlNiyas/samedayimprovement
[BAEL-3632] Using Instant to check for same day
2 parents 4e43d83 + 505fda1 commit a08f136

2 files changed

Lines changed: 17 additions & 3 deletions

File tree

core-java-modules/core-java-date-operations/src/main/java/com/baeldung/date/comparison/DateComparisonUtils.java

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,10 @@
11
package com.baeldung.date.comparison;
22

33
import java.text.SimpleDateFormat;
4+
import java.time.Instant;
45
import java.time.LocalDate;
56
import java.time.ZoneId;
7+
import java.time.temporal.ChronoUnit;
68
import java.util.Calendar;
79
import java.util.Date;
810
import java.util.TimeZone;
@@ -23,6 +25,14 @@ public static boolean isSameDayUsingLocalDate(Date date1, Date date2) {
2325
return localDate1.isEqual(localDate2);
2426
}
2527

28+
public static boolean isSameDayUsingInstant(Date date1, Date date2) {
29+
Instant instant1 = date1.toInstant()
30+
.truncatedTo(ChronoUnit.DAYS);
31+
Instant instant2 = date2.toInstant()
32+
.truncatedTo(ChronoUnit.DAYS);
33+
return instant1.equals(instant2);
34+
}
35+
2636
public static boolean isSameDayUsingSimpleDateFormat(Date date1, Date date2) {
2737
SimpleDateFormat fmt = new SimpleDateFormat("yyyyMMdd");
2838
return fmt.format(date1)

core-java-modules/core-java-date-operations/src/test/java/com/baeldung/date/comparison/DateComparisonUtilsUnitTest.java

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
11
package com.baeldung.date.comparison;
22

3-
import org.junit.Test;
3+
import static org.junit.Assert.assertFalse;
4+
import static org.junit.Assert.assertTrue;
45

56
import java.time.LocalDateTime;
67
import java.time.ZoneId;
78
import java.util.Date;
89

9-
import static org.junit.Assert.assertFalse;
10-
import static org.junit.Assert.assertTrue;
10+
import org.junit.Test;
1111

1212
public class DateComparisonUtilsUnitTest {
1313

@@ -23,6 +23,7 @@ private Date toDate(LocalDateTime localDateTime) {
2323
@Test
2424
public void givenDatesWithDifferentTime_whenIsSameDay_thenReturnsTrue() {
2525
assertTrue(DateComparisonUtils.isSameDayUsingLocalDate(day1Morning, day1Evening));
26+
assertTrue(DateComparisonUtils.isSameDayUsingInstant(day1Morning, day1Evening));
2627
assertTrue(DateComparisonUtils.isSameDayUsingSimpleDateFormat(day1Morning, day1Evening));
2728
assertTrue(DateComparisonUtils.isSameDayUsingCalendar(day1Morning, day1Evening));
2829
assertTrue(DateComparisonUtils.isSameDayUsingApacheCommons(day1Morning, day1Evening));
@@ -35,6 +36,9 @@ public void givenDates_whenIsDifferentDay_thenReturnsFalse() {
3536
assertFalse(DateComparisonUtils.isSameDayUsingLocalDate(day1Morning, day2Morning));
3637
assertFalse(DateComparisonUtils.isSameDayUsingLocalDate(day1Evening, day2Morning));
3738

39+
assertFalse(DateComparisonUtils.isSameDayUsingInstant(day1Morning, day2Morning));
40+
assertFalse(DateComparisonUtils.isSameDayUsingInstant(day1Evening, day2Morning));
41+
3842
assertFalse(DateComparisonUtils.isSameDayUsingSimpleDateFormat(day1Morning, day2Morning));
3943
assertFalse(DateComparisonUtils.isSameDayUsingSimpleDateFormat(day1Evening, day2Morning));
4044

0 commit comments

Comments
 (0)