From eea7bccf8657e4feaf2814c94667f5eb0b7e09d9 Mon Sep 17 00:00:00 2001 From: vunamtien Date: Wed, 10 Apr 2024 04:16:14 +0700 Subject: [PATCH] [JAVA-31831] Split-or-move-core-java-8-datetime-2 (#16325) --- .../core-java-8-datetime-2/README.md | 7 +- .../core-java-8-datetime-3/README.md | 8 ++ .../core-java-8-datetime-3/pom.xml | 55 ++++++++++++ .../DateRangeOverlapChecker.java | 6 +- .../localdatetoiso/LocalDateToISO.java | 14 ++- .../MonthInterval.java | 0 .../CheckIfTimeBetweenTwoTimesUnitTest.java | 88 +++++++++---------- .../DateRangeOverlapCheckerUnitTest.java | 8 +- .../LocalDateToISOUnitTest.java | 16 ++-- .../MonthIntervalUnitTest.java | 0 .../ZoneOffSetAndZoneIdOfUnitTest.java | 50 +++++------ 11 files changed, 154 insertions(+), 98 deletions(-) create mode 100644 core-java-modules/core-java-8-datetime-3/README.md create mode 100644 core-java-modules/core-java-8-datetime-3/pom.xml rename core-java-modules/{core-java-8-datetime-2 => core-java-8-datetime-3}/src/main/java/com/baeldung/daterangeoverlap/DateRangeOverlapChecker.java (100%) rename core-java-modules/{core-java-8-datetime-2 => core-java-8-datetime-3}/src/main/java/com/baeldung/localdatetoiso/LocalDateToISO.java (92%) rename core-java-modules/{core-java-8-datetime-2 => core-java-8-datetime-3}/src/main/java/com/baeldung/monthintervalbetweentwodates/MonthInterval.java (100%) rename core-java-modules/{core-java-8-datetime-2 => core-java-8-datetime-3}/src/test/java/com/baeldung/checkiftimebetweentwotimes/CheckIfTimeBetweenTwoTimesUnitTest.java (97%) rename core-java-modules/{core-java-8-datetime-2 => core-java-8-datetime-3}/src/test/java/com/baeldung/daterangeoverlap/DateRangeOverlapCheckerUnitTest.java (100%) rename core-java-modules/{core-java-8-datetime-2 => core-java-8-datetime-3}/src/test/java/com/baeldung/localdatetoiso/LocalDateToISOUnitTest.java (81%) rename core-java-modules/{core-java-8-datetime-2 => core-java-8-datetime-3}/src/test/java/com/baeldung/monthintervalbetweentwodates/MonthIntervalUnitTest.java (100%) rename core-java-modules/{core-java-8-datetime-2 => core-java-8-datetime-3}/src/test/java/com/baeldung/zoneoffsetandzoneidof/ZoneOffSetAndZoneIdOfUnitTest.java (96%) diff --git a/core-java-modules/core-java-8-datetime-2/README.md b/core-java-modules/core-java-8-datetime-2/README.md index 04461663e3..29ceaf29e1 100644 --- a/core-java-modules/core-java-8-datetime-2/README.md +++ b/core-java-modules/core-java-8-datetime-2/README.md @@ -9,9 +9,4 @@ - [Round the Date in Java](https://www.baeldung.com/java-round-the-date) - [Representing Furthest Possible Date in Java](https://www.baeldung.com/java-date-represent-max) - [Retrieving Unix Time in Java](https://www.baeldung.com/java-retrieve-unix-time) -- [Calculate Months Between Two Dates in Java](https://www.baeldung.com/java-months-difference-two-dates) -- [Format LocalDate to ISO 8601 With T and Z](https://www.baeldung.com/java-format-localdate-iso-8601-t-z) -- [Check if Two Date Ranges Overlap](https://www.baeldung.com/java-check-two-date-ranges-overlap) -- [Difference between ZoneOffset.UTC and ZoneId.of(“UTC”)](https://www.baeldung.com/java-zoneoffset-utc-zoneid-of) -- [Check if a Given Time Lies Between Two Times Regardless of Date](https://www.baeldung.com/java-check-between-two-times) -- [[<-- Prev]](/core-java-modules/core-java-datetime-java8-1) +- [[<-- Prev]](/core-java-modules/core-java-datetime-java8-1) [[Next -->]](/core-java-modules/core-java-8-datetime-3) diff --git a/core-java-modules/core-java-8-datetime-3/README.md b/core-java-modules/core-java-8-datetime-3/README.md new file mode 100644 index 0000000000..d320466814 --- /dev/null +++ b/core-java-modules/core-java-8-datetime-3/README.md @@ -0,0 +1,8 @@ +### Relevant Articles: + +- [Calculate Months Between Two Dates in Java](https://www.baeldung.com/java-months-difference-two-dates) +- [Format LocalDate to ISO 8601 With T and Z](https://www.baeldung.com/java-format-localdate-iso-8601-t-z) +- [Check if Two Date Ranges Overlap](https://www.baeldung.com/java-check-two-date-ranges-overlap) +- [Difference between ZoneOffset.UTC and ZoneId.of(“UTC”)](https://www.baeldung.com/java-zoneoffset-utc-zoneid-of) +- [Check if a Given Time Lies Between Two Times Regardless of Date](https://www.baeldung.com/java-check-between-two-times) +- [[<-- Prev]](/core-java-modules/core-java-8-datetime-2) diff --git a/core-java-modules/core-java-8-datetime-3/pom.xml b/core-java-modules/core-java-8-datetime-3/pom.xml new file mode 100644 index 0000000000..4e32190fcf --- /dev/null +++ b/core-java-modules/core-java-8-datetime-3/pom.xml @@ -0,0 +1,55 @@ + + + 4.0.0 + core-java-8-datetime-3 + jar + core-java-8-datetime-3 + + + com.baeldung.core-java-modules + core-java-modules + 0.0.1-SNAPSHOT + + + + + org.apache.commons + commons-lang3 + ${commons-lang3.version} + + + joda-time + joda-time + ${joda-time.version} + + + + + + + src/main/resources + true + + + + + org.apache.maven.plugins + maven-compiler-plugin + ${maven-compiler-plugin.version} + + ${maven.compiler.source} + ${maven.compiler.target} + + + + + + + 1.8 + 1.8 + 2.12.5 + + + \ No newline at end of file diff --git a/core-java-modules/core-java-8-datetime-2/src/main/java/com/baeldung/daterangeoverlap/DateRangeOverlapChecker.java b/core-java-modules/core-java-8-datetime-3/src/main/java/com/baeldung/daterangeoverlap/DateRangeOverlapChecker.java similarity index 100% rename from core-java-modules/core-java-8-datetime-2/src/main/java/com/baeldung/daterangeoverlap/DateRangeOverlapChecker.java rename to core-java-modules/core-java-8-datetime-3/src/main/java/com/baeldung/daterangeoverlap/DateRangeOverlapChecker.java index 9b898c87f5..9fbe4bc7fe 100644 --- a/core-java-modules/core-java-8-datetime-2/src/main/java/com/baeldung/daterangeoverlap/DateRangeOverlapChecker.java +++ b/core-java-modules/core-java-8-datetime-3/src/main/java/com/baeldung/daterangeoverlap/DateRangeOverlapChecker.java @@ -1,11 +1,11 @@ package com.baeldung.daterangeoverlap; -import java.time.LocalDate; -import java.util.Calendar; - import org.joda.time.DateTime; import org.joda.time.Interval; +import java.time.LocalDate; +import java.util.Calendar; + public class DateRangeOverlapChecker { public static boolean isOverlapUsingCalendarAndDuration(Calendar start1, Calendar end1, Calendar start2, Calendar end2) { diff --git a/core-java-modules/core-java-8-datetime-2/src/main/java/com/baeldung/localdatetoiso/LocalDateToISO.java b/core-java-modules/core-java-8-datetime-3/src/main/java/com/baeldung/localdatetoiso/LocalDateToISO.java similarity index 92% rename from core-java-modules/core-java-8-datetime-2/src/main/java/com/baeldung/localdatetoiso/LocalDateToISO.java rename to core-java-modules/core-java-8-datetime-3/src/main/java/com/baeldung/localdatetoiso/LocalDateToISO.java index e09d823ce4..adf6c09107 100644 --- a/core-java-modules/core-java-8-datetime-2/src/main/java/com/baeldung/localdatetoiso/LocalDateToISO.java +++ b/core-java-modules/core-java-8-datetime-3/src/main/java/com/baeldung/localdatetoiso/LocalDateToISO.java @@ -1,20 +1,16 @@ package com.baeldung.localdatetoiso; +import org.apache.commons.lang3.time.FastDateFormat; +import org.joda.time.DateTimeZone; +import org.joda.time.format.ISODateTimeFormat; + import java.text.DateFormat; import java.text.SimpleDateFormat; import java.time.LocalDate; import java.time.ZoneOffset; import java.time.format.DateTimeFormatter; import java.util.Date; - -import org.apache.commons.lang3.time.DateFormatUtils; - -import org.joda.time.DateTime; -import org.joda.time.DateTimeZone; -import org.joda.time.format.DateTimeFormat; -import org.joda.time.format.ISODateTimeFormat; - -import org.apache.commons.lang3.time.FastDateFormat; +import java.util.TimeZone; public class LocalDateToISO { public String formatUsingDateTimeFormatter(LocalDate localDate) { diff --git a/core-java-modules/core-java-8-datetime-2/src/main/java/com/baeldung/monthintervalbetweentwodates/MonthInterval.java b/core-java-modules/core-java-8-datetime-3/src/main/java/com/baeldung/monthintervalbetweentwodates/MonthInterval.java similarity index 100% rename from core-java-modules/core-java-8-datetime-2/src/main/java/com/baeldung/monthintervalbetweentwodates/MonthInterval.java rename to core-java-modules/core-java-8-datetime-3/src/main/java/com/baeldung/monthintervalbetweentwodates/MonthInterval.java diff --git a/core-java-modules/core-java-8-datetime-2/src/test/java/com/baeldung/checkiftimebetweentwotimes/CheckIfTimeBetweenTwoTimesUnitTest.java b/core-java-modules/core-java-8-datetime-3/src/test/java/com/baeldung/checkiftimebetweentwotimes/CheckIfTimeBetweenTwoTimesUnitTest.java similarity index 97% rename from core-java-modules/core-java-8-datetime-2/src/test/java/com/baeldung/checkiftimebetweentwotimes/CheckIfTimeBetweenTwoTimesUnitTest.java rename to core-java-modules/core-java-8-datetime-3/src/test/java/com/baeldung/checkiftimebetweentwotimes/CheckIfTimeBetweenTwoTimesUnitTest.java index 1ffddaa241..e2f526947e 100644 --- a/core-java-modules/core-java-8-datetime-2/src/test/java/com/baeldung/checkiftimebetweentwotimes/CheckIfTimeBetweenTwoTimesUnitTest.java +++ b/core-java-modules/core-java-8-datetime-3/src/test/java/com/baeldung/checkiftimebetweentwotimes/CheckIfTimeBetweenTwoTimesUnitTest.java @@ -1,45 +1,45 @@ -package com.baeldung.checkiftimebetweentwotimes; - -import org.junit.Test; - -import java.time.LocalTime; -import java.util.Calendar; -import java.util.Date; - -import static org.junit.Assert.assertTrue; - -public class CheckIfTimeBetweenTwoTimesUnitTest { - private LocalTime startTime = LocalTime.parse("09:00:00"); - private LocalTime endTime = LocalTime.parse("17:00:00"); - private LocalTime targetTime = LocalTime.parse("12:30:00"); - - @Test - public void givenLocalTime_whenUsingIsAfterIsBefore_thenTimeIsBetween() { - assertTrue(!targetTime.isBefore(startTime) && !targetTime.isAfter(endTime)); - } - - @Test - public void givenLocalTime_whenUsingCompareTo_thenTimeIsBetween() { - assertTrue(targetTime.compareTo(startTime) >= 0 && targetTime.compareTo(endTime) <= 0); - } - - @Test - public void givenDate_whenUsingAfterBefore_thenTimeIsBetween() { - Calendar startCalendar = Calendar.getInstance(); - startCalendar.set(Calendar.HOUR_OF_DAY, 9); - startCalendar.set(Calendar.MINUTE, 0); - Date startTime = startCalendar.getTime(); - - Calendar endCalendar = Calendar.getInstance(); - endCalendar.set(Calendar.HOUR_OF_DAY, 17); - endCalendar.set(Calendar.MINUTE, 0); - Date endTime = endCalendar.getTime(); - - Calendar targetCalendar = Calendar.getInstance(); - targetCalendar.set(Calendar.HOUR_OF_DAY, 12); - targetCalendar.set(Calendar.MINUTE, 30); - Date targetTime = targetCalendar.getTime(); - - assertTrue(!targetTime.before(startTime) && !targetTime.after(endTime)); - } +package com.baeldung.checkiftimebetweentwotimes; + +import org.junit.Test; + +import java.time.LocalTime; +import java.util.Calendar; +import java.util.Date; + +import static org.junit.Assert.assertTrue; + +public class CheckIfTimeBetweenTwoTimesUnitTest { + private LocalTime startTime = LocalTime.parse("09:00:00"); + private LocalTime endTime = LocalTime.parse("17:00:00"); + private LocalTime targetTime = LocalTime.parse("12:30:00"); + + @Test + public void givenLocalTime_whenUsingIsAfterIsBefore_thenTimeIsBetween() { + assertTrue(!targetTime.isBefore(startTime) && !targetTime.isAfter(endTime)); + } + + @Test + public void givenLocalTime_whenUsingCompareTo_thenTimeIsBetween() { + assertTrue(targetTime.compareTo(startTime) >= 0 && targetTime.compareTo(endTime) <= 0); + } + + @Test + public void givenDate_whenUsingAfterBefore_thenTimeIsBetween() { + Calendar startCalendar = Calendar.getInstance(); + startCalendar.set(Calendar.HOUR_OF_DAY, 9); + startCalendar.set(Calendar.MINUTE, 0); + Date startTime = startCalendar.getTime(); + + Calendar endCalendar = Calendar.getInstance(); + endCalendar.set(Calendar.HOUR_OF_DAY, 17); + endCalendar.set(Calendar.MINUTE, 0); + Date endTime = endCalendar.getTime(); + + Calendar targetCalendar = Calendar.getInstance(); + targetCalendar.set(Calendar.HOUR_OF_DAY, 12); + targetCalendar.set(Calendar.MINUTE, 30); + Date targetTime = targetCalendar.getTime(); + + assertTrue(!targetTime.before(startTime) && !targetTime.after(endTime)); + } } \ No newline at end of file diff --git a/core-java-modules/core-java-8-datetime-2/src/test/java/com/baeldung/daterangeoverlap/DateRangeOverlapCheckerUnitTest.java b/core-java-modules/core-java-8-datetime-3/src/test/java/com/baeldung/daterangeoverlap/DateRangeOverlapCheckerUnitTest.java similarity index 100% rename from core-java-modules/core-java-8-datetime-2/src/test/java/com/baeldung/daterangeoverlap/DateRangeOverlapCheckerUnitTest.java rename to core-java-modules/core-java-8-datetime-3/src/test/java/com/baeldung/daterangeoverlap/DateRangeOverlapCheckerUnitTest.java index 5811cb6552..fa8145f71c 100644 --- a/core-java-modules/core-java-8-datetime-2/src/test/java/com/baeldung/daterangeoverlap/DateRangeOverlapCheckerUnitTest.java +++ b/core-java-modules/core-java-8-datetime-3/src/test/java/com/baeldung/daterangeoverlap/DateRangeOverlapCheckerUnitTest.java @@ -1,13 +1,13 @@ package com.baeldung.daterangeoverlap; -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertTrue; +import org.joda.time.DateTime; +import org.junit.Test; import java.time.LocalDate; import java.util.Calendar; -import org.joda.time.DateTime; -import org.junit.Test; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertTrue; public class DateRangeOverlapCheckerUnitTest { diff --git a/core-java-modules/core-java-8-datetime-2/src/test/java/com/baeldung/localdatetoiso/LocalDateToISOUnitTest.java b/core-java-modules/core-java-8-datetime-3/src/test/java/com/baeldung/localdatetoiso/LocalDateToISOUnitTest.java similarity index 81% rename from core-java-modules/core-java-8-datetime-2/src/test/java/com/baeldung/localdatetoiso/LocalDateToISOUnitTest.java rename to core-java-modules/core-java-8-datetime-3/src/test/java/com/baeldung/localdatetoiso/LocalDateToISOUnitTest.java index 1979c91eca..c82cc2766d 100644 --- a/core-java-modules/core-java-8-datetime-2/src/test/java/com/baeldung/localdatetoiso/LocalDateToISOUnitTest.java +++ b/core-java-modules/core-java-8-datetime-3/src/test/java/com/baeldung/localdatetoiso/LocalDateToISOUnitTest.java @@ -1,13 +1,14 @@ package com.baeldung.localdatetoiso; +import org.junit.Test; + +import java.time.LocalDate; + import static org.junit.Assert.assertEquals; -import org.junit.Test; -import java.time.LocalDate; - public class LocalDateToISOUnitTest { @Test - void givenLocalDate_whenUsingDateTimeFormatter_thenISOFormat(){ + public void givenLocalDate_whenUsingDateTimeFormatter_thenISOFormat(){ LocalDateToISO localDateToISO = new LocalDateToISO(); LocalDate localDate = LocalDate.of(2023, 11, 6); @@ -17,7 +18,7 @@ public class LocalDateToISOUnitTest { } @Test - void givenLocalDate_whenUsingSimpleDateFormat_thenISOFormat(){ + public void givenLocalDate_whenUsingSimpleDateFormat_thenISOFormat(){ LocalDateToISO localDateToISO = new LocalDateToISO(); LocalDate localDate = LocalDate.of(2023, 11, 6); @@ -27,17 +28,18 @@ public class LocalDateToISOUnitTest { } @Test - void givenLocalDate_whenUsingJodaTime_thenISOFormat() { + public void givenLocalDate_whenUsingJodaTime_thenISOFormat() { LocalDateToISO localDateToISO = new LocalDateToISO(); org.joda.time.LocalDate localDate = new org.joda.time.LocalDate(2023, 11, 6); String expected = "2023-11-06T00:00:00.000Z"; String actual = localDateToISO.formatUsingJodaTime(localDate); assertEquals(expected, actual); + assertEquals(expected, actual); } @Test - void givenLocalDate_whenUsingApacheCommonsLang_thenISOFormat() { + public void givenLocalDate_whenUsingApacheCommonsLang_thenISOFormat() { LocalDateToISO localDateToISO = new LocalDateToISO(); LocalDate localDate = LocalDate.of(2023, 11, 6); diff --git a/core-java-modules/core-java-8-datetime-2/src/test/java/com/baeldung/monthintervalbetweentwodates/MonthIntervalUnitTest.java b/core-java-modules/core-java-8-datetime-3/src/test/java/com/baeldung/monthintervalbetweentwodates/MonthIntervalUnitTest.java similarity index 100% rename from core-java-modules/core-java-8-datetime-2/src/test/java/com/baeldung/monthintervalbetweentwodates/MonthIntervalUnitTest.java rename to core-java-modules/core-java-8-datetime-3/src/test/java/com/baeldung/monthintervalbetweentwodates/MonthIntervalUnitTest.java diff --git a/core-java-modules/core-java-8-datetime-2/src/test/java/com/baeldung/zoneoffsetandzoneidof/ZoneOffSetAndZoneIdOfUnitTest.java b/core-java-modules/core-java-8-datetime-3/src/test/java/com/baeldung/zoneoffsetandzoneidof/ZoneOffSetAndZoneIdOfUnitTest.java similarity index 96% rename from core-java-modules/core-java-8-datetime-2/src/test/java/com/baeldung/zoneoffsetandzoneidof/ZoneOffSetAndZoneIdOfUnitTest.java rename to core-java-modules/core-java-8-datetime-3/src/test/java/com/baeldung/zoneoffsetandzoneidof/ZoneOffSetAndZoneIdOfUnitTest.java index 84f40c3cd5..298963fd70 100644 --- a/core-java-modules/core-java-8-datetime-2/src/test/java/com/baeldung/zoneoffsetandzoneidof/ZoneOffSetAndZoneIdOfUnitTest.java +++ b/core-java-modules/core-java-8-datetime-3/src/test/java/com/baeldung/zoneoffsetandzoneidof/ZoneOffSetAndZoneIdOfUnitTest.java @@ -1,25 +1,25 @@ -package com.baeldung.zoneoffsetandzoneidof; - -import org.junit.jupiter.api.Test; - -import java.time.OffsetDateTime; -import java.time.ZoneId; -import java.time.ZoneOffset; -import java.time.ZonedDateTime; - -import static org.junit.jupiter.api.Assertions.assertEquals; - -public class ZoneOffSetAndZoneIdOfUnitTest { - - @Test - public void givenOffsetDateTimeWithUTCZoneOffset_thenOffsetShouldBeUTC() { - OffsetDateTime dateTimeWithOffset = OffsetDateTime.now(ZoneOffset.UTC); - assertEquals(dateTimeWithOffset.getOffset(), ZoneOffset.UTC); - } - - @Test - public void givenZonedDateTimeWithUTCZoneId_thenZoneShouldBeUTC() { - ZonedDateTime zonedDateTime = ZonedDateTime.now(ZoneId.of("UTC")); - assertEquals(zonedDateTime.getZone(), ZoneId.of("UTC")); - } -} +package com.baeldung.zoneoffsetandzoneidof; + +import org.junit.jupiter.api.Test; + +import java.time.OffsetDateTime; +import java.time.ZoneId; +import java.time.ZoneOffset; +import java.time.ZonedDateTime; + +import static org.junit.jupiter.api.Assertions.assertEquals; + +public class ZoneOffSetAndZoneIdOfUnitTest { + + @Test + public void givenOffsetDateTimeWithUTCZoneOffset_thenOffsetShouldBeUTC() { + OffsetDateTime dateTimeWithOffset = OffsetDateTime.now(ZoneOffset.UTC); + assertEquals(dateTimeWithOffset.getOffset(), ZoneOffset.UTC); + } + + @Test + public void givenZonedDateTimeWithUTCZoneId_thenZoneShouldBeUTC() { + ZonedDateTime zonedDateTime = ZonedDateTime.now(ZoneId.of("UTC")); + assertEquals(zonedDateTime.getZone(), ZoneId.of("UTC")); + } +}