diff --git a/core-java-modules/core-java-datetime-computations/README.md b/core-java-modules/core-java-datetime-computations/README.md
new file mode 100644
index 0000000000..591ddeaa94
--- /dev/null
+++ b/core-java-modules/core-java-datetime-computations/README.md
@@ -0,0 +1,15 @@
+## Java Date/time computations Cookbooks and Examples
+
+This module contains articles about date and time computations in Java.
+
+### Relevant Articles:
+- [Difference Between Two Dates in Java](http://www.baeldung.com/java-date-difference)
+- [Get Date Without Time in Java](http://www.baeldung.com/java-date-without-time)
+- [How to Get All Dates Between Two Dates?](http://www.baeldung.com/java-between-dates)
+- [Extracting Year, Month and Day from Date in Java](http://www.baeldung.com/java-year-month-day)
+- [Guide to java.util.GregorianCalendar](http://www.baeldung.com/java-gregorian-calendar)
+- [Handling Daylight Savings Time in Java](http://www.baeldung.com/java-daylight-savings)
+- [Calculate Age in Java](http://www.baeldung.com/java-get-age)
+- [Increment Date in Java](http://www.baeldung.com/java-increment-date)
+- [Add Hours To a Date In Java](http://www.baeldung.com/java-add-hours-date)
+- [Introduction to Joda-Time](http://www.baeldung.com/joda-time)
diff --git a/core-java-modules/core-java-datetime-computations/pom.xml b/core-java-modules/core-java-datetime-computations/pom.xml
new file mode 100644
index 0000000000..934df8018f
--- /dev/null
+++ b/core-java-modules/core-java-datetime-computations/pom.xml
@@ -0,0 +1,71 @@
+
+ 4.0.0
+ core-java-datetime-computations
+ ${project.parent.version}
+ core-java-datetime-computations
+ jar
+
+
+ com.baeldung
+ parent-java
+ 0.0.1-SNAPSHOT
+ ../../parent-java
+
+
+
+
+ joda-time
+ joda-time
+ ${joda-time.version}
+
+
+ org.apache.commons
+ commons-lang3
+ ${commons-lang3.version}
+
+
+
+ org.assertj
+ assertj-core
+ ${assertj.version}
+ test
+
+
+ com.darwinsys
+ hirondelle-date4j
+ RELEASE
+ test
+
+
+
+
+ core-java-datetime-computations
+
+
+ src/main/resources
+ true
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-compiler-plugin
+ ${maven-compiler-plugin.version}
+
+ ${maven.compiler.source}
+ ${maven.compiler.target}
+
+
+
+
+
+
+ 2.10
+
+ 3.6.1
+ 1.9
+ 1.9
+
+
diff --git a/java-dates/src/main/java/com/baeldung/date/AgeCalculator.java b/core-java-modules/core-java-datetime-computations/src/main/java/com/baeldung/date/AgeCalculator.java
similarity index 100%
rename from java-dates/src/main/java/com/baeldung/date/AgeCalculator.java
rename to core-java-modules/core-java-datetime-computations/src/main/java/com/baeldung/date/AgeCalculator.java
diff --git a/java-dates/src/main/java/com/baeldung/date/DateWithoutTime.java b/core-java-modules/core-java-datetime-computations/src/main/java/com/baeldung/date/DateWithoutTime.java
similarity index 100%
rename from java-dates/src/main/java/com/baeldung/date/DateWithoutTime.java
rename to core-java-modules/core-java-datetime-computations/src/main/java/com/baeldung/date/DateWithoutTime.java
diff --git a/java-dates/src/main/java/com/baeldung/datetime/AddHoursToDate.java b/core-java-modules/core-java-datetime-computations/src/main/java/com/baeldung/datetime/AddHoursToDate.java
similarity index 100%
rename from java-dates/src/main/java/com/baeldung/datetime/AddHoursToDate.java
rename to core-java-modules/core-java-datetime-computations/src/main/java/com/baeldung/datetime/AddHoursToDate.java
diff --git a/java-dates/src/main/java/com/baeldung/datetime/DateExtractYearMonthDayIntegerValues.java b/core-java-modules/core-java-datetime-computations/src/main/java/com/baeldung/datetime/DateExtractYearMonthDayIntegerValues.java
similarity index 95%
rename from java-dates/src/main/java/com/baeldung/datetime/DateExtractYearMonthDayIntegerValues.java
rename to core-java-modules/core-java-datetime-computations/src/main/java/com/baeldung/datetime/DateExtractYearMonthDayIntegerValues.java
index a6cef94377..8b6d9885af 100644
--- a/java-dates/src/main/java/com/baeldung/datetime/DateExtractYearMonthDayIntegerValues.java
+++ b/core-java-modules/core-java-datetime-computations/src/main/java/com/baeldung/datetime/DateExtractYearMonthDayIntegerValues.java
@@ -1,28 +1,28 @@
-package com.baeldung.datetime;
-
-import java.util.Calendar;
-import java.util.Date;
-
-public class DateExtractYearMonthDayIntegerValues {
-
- int getYear(Date date) {
- Calendar calendar = Calendar.getInstance();
- calendar.setTime(date);
-
- return calendar.get(Calendar.YEAR);
- }
-
- int getMonth(Date date) {
- Calendar calendar = Calendar.getInstance();
- calendar.setTime(date);
-
- return calendar.get(Calendar.MONTH);
- }
-
- int getDay(Date date) {
- Calendar calendar = Calendar.getInstance();
- calendar.setTime(date);
-
- return calendar.get(Calendar.DAY_OF_MONTH);
- }
-}
+package com.baeldung.datetime;
+
+import java.util.Calendar;
+import java.util.Date;
+
+public class DateExtractYearMonthDayIntegerValues {
+
+ int getYear(Date date) {
+ Calendar calendar = Calendar.getInstance();
+ calendar.setTime(date);
+
+ return calendar.get(Calendar.YEAR);
+ }
+
+ int getMonth(Date date) {
+ Calendar calendar = Calendar.getInstance();
+ calendar.setTime(date);
+
+ return calendar.get(Calendar.MONTH);
+ }
+
+ int getDay(Date date) {
+ Calendar calendar = Calendar.getInstance();
+ calendar.setTime(date);
+
+ return calendar.get(Calendar.DAY_OF_MONTH);
+ }
+}
diff --git a/java-dates/src/main/java/com/baeldung/datetime/LocalDateExtractYearMonthDayIntegerValues.java b/core-java-modules/core-java-datetime-computations/src/main/java/com/baeldung/datetime/LocalDateExtractYearMonthDayIntegerValues.java
similarity index 95%
rename from java-dates/src/main/java/com/baeldung/datetime/LocalDateExtractYearMonthDayIntegerValues.java
rename to core-java-modules/core-java-datetime-computations/src/main/java/com/baeldung/datetime/LocalDateExtractYearMonthDayIntegerValues.java
index b40e10f6ad..6daa86130d 100644
--- a/java-dates/src/main/java/com/baeldung/datetime/LocalDateExtractYearMonthDayIntegerValues.java
+++ b/core-java-modules/core-java-datetime-computations/src/main/java/com/baeldung/datetime/LocalDateExtractYearMonthDayIntegerValues.java
@@ -1,18 +1,18 @@
-package com.baeldung.datetime;
-
-import java.time.LocalDate;
-
-public class LocalDateExtractYearMonthDayIntegerValues {
-
- int getYear(LocalDate localDate) {
- return localDate.getYear();
- }
-
- int getMonth(LocalDate localDate) {
- return localDate.getMonthValue();
- }
-
- int getDay(LocalDate localDate) {
- return localDate.getDayOfMonth();
- }
-}
+package com.baeldung.datetime;
+
+import java.time.LocalDate;
+
+public class LocalDateExtractYearMonthDayIntegerValues {
+
+ int getYear(LocalDate localDate) {
+ return localDate.getYear();
+ }
+
+ int getMonth(LocalDate localDate) {
+ return localDate.getMonthValue();
+ }
+
+ int getDay(LocalDate localDate) {
+ return localDate.getDayOfMonth();
+ }
+}
diff --git a/java-dates/src/main/java/com/baeldung/datetime/LocalDateTimeExtractYearMonthDayIntegerValues.java b/core-java-modules/core-java-datetime-computations/src/main/java/com/baeldung/datetime/LocalDateTimeExtractYearMonthDayIntegerValues.java
similarity index 95%
rename from java-dates/src/main/java/com/baeldung/datetime/LocalDateTimeExtractYearMonthDayIntegerValues.java
rename to core-java-modules/core-java-datetime-computations/src/main/java/com/baeldung/datetime/LocalDateTimeExtractYearMonthDayIntegerValues.java
index 404a62d2f4..bb4415fbc7 100644
--- a/java-dates/src/main/java/com/baeldung/datetime/LocalDateTimeExtractYearMonthDayIntegerValues.java
+++ b/core-java-modules/core-java-datetime-computations/src/main/java/com/baeldung/datetime/LocalDateTimeExtractYearMonthDayIntegerValues.java
@@ -1,18 +1,18 @@
-package com.baeldung.datetime;
-
-import java.time.LocalDateTime;
-
-public class LocalDateTimeExtractYearMonthDayIntegerValues {
-
- int getYear(LocalDateTime localDateTime) {
- return localDateTime.getYear();
- }
-
- int getMonth(LocalDateTime localDateTime) {
- return localDateTime.getMonthValue();
- }
-
- int getDay(LocalDateTime localDateTime) {
- return localDateTime.getDayOfMonth();
- }
-}
+package com.baeldung.datetime;
+
+import java.time.LocalDateTime;
+
+public class LocalDateTimeExtractYearMonthDayIntegerValues {
+
+ int getYear(LocalDateTime localDateTime) {
+ return localDateTime.getYear();
+ }
+
+ int getMonth(LocalDateTime localDateTime) {
+ return localDateTime.getMonthValue();
+ }
+
+ int getDay(LocalDateTime localDateTime) {
+ return localDateTime.getDayOfMonth();
+ }
+}
diff --git a/java-dates/src/main/java/com/baeldung/datetime/OffsetDateTimeExtractYearMonthDayIntegerValues.java b/core-java-modules/core-java-datetime-computations/src/main/java/com/baeldung/datetime/OffsetDateTimeExtractYearMonthDayIntegerValues.java
similarity index 96%
rename from java-dates/src/main/java/com/baeldung/datetime/OffsetDateTimeExtractYearMonthDayIntegerValues.java
rename to core-java-modules/core-java-datetime-computations/src/main/java/com/baeldung/datetime/OffsetDateTimeExtractYearMonthDayIntegerValues.java
index e686b05493..398c03102c 100644
--- a/java-dates/src/main/java/com/baeldung/datetime/OffsetDateTimeExtractYearMonthDayIntegerValues.java
+++ b/core-java-modules/core-java-datetime-computations/src/main/java/com/baeldung/datetime/OffsetDateTimeExtractYearMonthDayIntegerValues.java
@@ -1,18 +1,18 @@
-package com.baeldung.datetime;
-
-import java.time.OffsetDateTime;
-
-public class OffsetDateTimeExtractYearMonthDayIntegerValues {
-
- int getYear(OffsetDateTime offsetDateTime) {
- return offsetDateTime.getYear();
- }
-
- int getMonth(OffsetDateTime offsetDateTime) {
- return offsetDateTime.getMonthValue();
- }
-
- int getDay(OffsetDateTime offsetDateTime) {
- return offsetDateTime.getDayOfMonth();
- }
-}
+package com.baeldung.datetime;
+
+import java.time.OffsetDateTime;
+
+public class OffsetDateTimeExtractYearMonthDayIntegerValues {
+
+ int getYear(OffsetDateTime offsetDateTime) {
+ return offsetDateTime.getYear();
+ }
+
+ int getMonth(OffsetDateTime offsetDateTime) {
+ return offsetDateTime.getMonthValue();
+ }
+
+ int getDay(OffsetDateTime offsetDateTime) {
+ return offsetDateTime.getDayOfMonth();
+ }
+}
diff --git a/java-dates/src/main/java/com/baeldung/datetime/ZonedDateTimeExtractYearMonthDayIntegerValues.java b/core-java-modules/core-java-datetime-computations/src/main/java/com/baeldung/datetime/ZonedDateTimeExtractYearMonthDayIntegerValues.java
similarity index 95%
rename from java-dates/src/main/java/com/baeldung/datetime/ZonedDateTimeExtractYearMonthDayIntegerValues.java
rename to core-java-modules/core-java-datetime-computations/src/main/java/com/baeldung/datetime/ZonedDateTimeExtractYearMonthDayIntegerValues.java
index 3e790b2b3f..86bce90f75 100644
--- a/java-dates/src/main/java/com/baeldung/datetime/ZonedDateTimeExtractYearMonthDayIntegerValues.java
+++ b/core-java-modules/core-java-datetime-computations/src/main/java/com/baeldung/datetime/ZonedDateTimeExtractYearMonthDayIntegerValues.java
@@ -1,18 +1,18 @@
-package com.baeldung.datetime;
-
-import java.time.ZonedDateTime;
-
-public class ZonedDateTimeExtractYearMonthDayIntegerValues {
-
- int getYear(ZonedDateTime zonedDateTime) {
- return zonedDateTime.getYear();
- }
-
- int getMonth(ZonedDateTime zonedDateTime) {
- return zonedDateTime.getMonthValue();
- }
-
- int getDay(ZonedDateTime zonedDateTime) {
- return zonedDateTime.getDayOfMonth();
- }
-}
+package com.baeldung.datetime;
+
+import java.time.ZonedDateTime;
+
+public class ZonedDateTimeExtractYearMonthDayIntegerValues {
+
+ int getYear(ZonedDateTime zonedDateTime) {
+ return zonedDateTime.getYear();
+ }
+
+ int getMonth(ZonedDateTime zonedDateTime) {
+ return zonedDateTime.getMonthValue();
+ }
+
+ int getDay(ZonedDateTime zonedDateTime) {
+ return zonedDateTime.getDayOfMonth();
+ }
+}
diff --git a/java-dates/src/main/java/com/baeldung/datetime/modify/DateIncrementer.java b/core-java-modules/core-java-datetime-computations/src/main/java/com/baeldung/datetime/modify/DateIncrementer.java
similarity index 100%
rename from java-dates/src/main/java/com/baeldung/datetime/modify/DateIncrementer.java
rename to core-java-modules/core-java-datetime-computations/src/main/java/com/baeldung/datetime/modify/DateIncrementer.java
diff --git a/java-dates/src/main/java/com/baeldung/gregorian/calendar/GregorianCalendarExample.java b/core-java-modules/core-java-datetime-computations/src/main/java/com/baeldung/gregorian/calendar/GregorianCalendarExample.java
similarity index 100%
rename from java-dates/src/main/java/com/baeldung/gregorian/calendar/GregorianCalendarExample.java
rename to core-java-modules/core-java-datetime-computations/src/main/java/com/baeldung/gregorian/calendar/GregorianCalendarExample.java
diff --git a/java-dates/src/main/java/com/baeldung/java9/time/TimeApi.java b/core-java-modules/core-java-datetime-computations/src/main/java/com/baeldung/java9/time/TimeApi.java
similarity index 100%
rename from java-dates/src/main/java/com/baeldung/java9/time/TimeApi.java
rename to core-java-modules/core-java-datetime-computations/src/main/java/com/baeldung/java9/time/TimeApi.java
diff --git a/java-dates/src/test/java/com/baeldung/date/AgeCalculatorUnitTest.java b/core-java-modules/core-java-datetime-computations/src/test/java/com/baeldung/date/AgeCalculatorUnitTest.java
similarity index 100%
rename from java-dates/src/test/java/com/baeldung/date/AgeCalculatorUnitTest.java
rename to core-java-modules/core-java-datetime-computations/src/test/java/com/baeldung/date/AgeCalculatorUnitTest.java
diff --git a/java-dates/src/test/java/com/baeldung/date/DateDiffUnitTest.java b/core-java-modules/core-java-datetime-computations/src/test/java/com/baeldung/date/DateDiffUnitTest.java
similarity index 100%
rename from java-dates/src/test/java/com/baeldung/date/DateDiffUnitTest.java
rename to core-java-modules/core-java-datetime-computations/src/test/java/com/baeldung/date/DateDiffUnitTest.java
diff --git a/java-dates/src/test/java/com/baeldung/date/DateWithoutTimeUnitTest.java b/core-java-modules/core-java-datetime-computations/src/test/java/com/baeldung/date/DateWithoutTimeUnitTest.java
similarity index 100%
rename from java-dates/src/test/java/com/baeldung/date/DateWithoutTimeUnitTest.java
rename to core-java-modules/core-java-datetime-computations/src/test/java/com/baeldung/date/DateWithoutTimeUnitTest.java
diff --git a/java-dates/src/test/java/com/baeldung/datetime/AddHoursToDateUnitTest.java b/core-java-modules/core-java-datetime-computations/src/test/java/com/baeldung/datetime/AddHoursToDateUnitTest.java
similarity index 100%
rename from java-dates/src/test/java/com/baeldung/datetime/AddHoursToDateUnitTest.java
rename to core-java-modules/core-java-datetime-computations/src/test/java/com/baeldung/datetime/AddHoursToDateUnitTest.java
diff --git a/java-dates/src/test/java/com/baeldung/datetime/DateExtractYearMonthDayIntegerValuesUnitTest.java b/core-java-modules/core-java-datetime-computations/src/test/java/com/baeldung/datetime/DateExtractYearMonthDayIntegerValuesUnitTest.java
similarity index 96%
rename from java-dates/src/test/java/com/baeldung/datetime/DateExtractYearMonthDayIntegerValuesUnitTest.java
rename to core-java-modules/core-java-datetime-computations/src/test/java/com/baeldung/datetime/DateExtractYearMonthDayIntegerValuesUnitTest.java
index 3b1fcfa6c5..5914b5a727 100644
--- a/java-dates/src/test/java/com/baeldung/datetime/DateExtractYearMonthDayIntegerValuesUnitTest.java
+++ b/core-java-modules/core-java-datetime-computations/src/test/java/com/baeldung/datetime/DateExtractYearMonthDayIntegerValuesUnitTest.java
@@ -1,45 +1,45 @@
-package com.baeldung.datetime;
-
-import static org.hamcrest.CoreMatchers.is;
-import static org.junit.Assert.assertThat;
-
-import java.text.ParseException;
-import java.text.SimpleDateFormat;
-import java.util.Date;
-
-import org.junit.Before;
-import org.junit.Test;
-
-public class DateExtractYearMonthDayIntegerValuesUnitTest {
-
- DateExtractYearMonthDayIntegerValues extractYearMonthDateIntegerValues = new DateExtractYearMonthDayIntegerValues();
-
- Date date;
-
- @Before
- public void setup() throws ParseException
- {
- date=new SimpleDateFormat("dd-MM-yyyy").parse("01-03-2018");
- }
-
- @Test
- public void whenGetYear_thenCorrectYear()
- {
- int actualYear=extractYearMonthDateIntegerValues.getYear(date);
- assertThat(actualYear,is(2018));
- }
-
- @Test
- public void whenGetMonth_thenCorrectMonth()
- {
- int actualMonth=extractYearMonthDateIntegerValues.getMonth(date);
- assertThat(actualMonth,is(02));
- }
-
- @Test
- public void whenGetDay_thenCorrectDay()
- {
- int actualDayOfMonth=extractYearMonthDateIntegerValues.getDay(date);
- assertThat(actualDayOfMonth,is(01));
- }
-}
+package com.baeldung.datetime;
+
+import static org.hamcrest.CoreMatchers.is;
+import static org.junit.Assert.assertThat;
+
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
+import java.util.Date;
+
+import org.junit.Before;
+import org.junit.Test;
+
+public class DateExtractYearMonthDayIntegerValuesUnitTest {
+
+ DateExtractYearMonthDayIntegerValues extractYearMonthDateIntegerValues = new DateExtractYearMonthDayIntegerValues();
+
+ Date date;
+
+ @Before
+ public void setup() throws ParseException
+ {
+ date=new SimpleDateFormat("dd-MM-yyyy").parse("01-03-2018");
+ }
+
+ @Test
+ public void whenGetYear_thenCorrectYear()
+ {
+ int actualYear=extractYearMonthDateIntegerValues.getYear(date);
+ assertThat(actualYear,is(2018));
+ }
+
+ @Test
+ public void whenGetMonth_thenCorrectMonth()
+ {
+ int actualMonth=extractYearMonthDateIntegerValues.getMonth(date);
+ assertThat(actualMonth,is(02));
+ }
+
+ @Test
+ public void whenGetDay_thenCorrectDay()
+ {
+ int actualDayOfMonth=extractYearMonthDateIntegerValues.getDay(date);
+ assertThat(actualDayOfMonth,is(01));
+ }
+}
diff --git a/java-dates/src/test/java/com/baeldung/datetime/LocalDateExtractYearMonthDayIntegerValuesUnitTest.java b/core-java-modules/core-java-datetime-computations/src/test/java/com/baeldung/datetime/LocalDateExtractYearMonthDayIntegerValuesUnitTest.java
similarity index 96%
rename from java-dates/src/test/java/com/baeldung/datetime/LocalDateExtractYearMonthDayIntegerValuesUnitTest.java
rename to core-java-modules/core-java-datetime-computations/src/test/java/com/baeldung/datetime/LocalDateExtractYearMonthDayIntegerValuesUnitTest.java
index 05de6ed0b9..641d45a536 100644
--- a/java-dates/src/test/java/com/baeldung/datetime/LocalDateExtractYearMonthDayIntegerValuesUnitTest.java
+++ b/core-java-modules/core-java-datetime-computations/src/test/java/com/baeldung/datetime/LocalDateExtractYearMonthDayIntegerValuesUnitTest.java
@@ -1,36 +1,36 @@
-package com.baeldung.datetime;
-
-import static org.hamcrest.CoreMatchers.is;
-import static org.junit.Assert.assertThat;
-
-import java.time.LocalDate;
-
-import org.junit.Test;
-
-public class LocalDateExtractYearMonthDayIntegerValuesUnitTest {
-
- LocalDateExtractYearMonthDayIntegerValues localDateExtractYearMonthDayIntegerValues=new LocalDateExtractYearMonthDayIntegerValues();
-
- LocalDate localDate=LocalDate.parse("2007-12-03");
-
- @Test
- public void whenGetYear_thenCorrectYear()
- {
- int actualYear=localDateExtractYearMonthDayIntegerValues.getYear(localDate);
- assertThat(actualYear,is(2007));
- }
-
- @Test
- public void whenGetMonth_thenCorrectMonth()
- {
- int actualMonth=localDateExtractYearMonthDayIntegerValues.getMonth(localDate);
- assertThat(actualMonth,is(12));
- }
-
- @Test
- public void whenGetDay_thenCorrectDay()
- {
- int actualDayOfMonth=localDateExtractYearMonthDayIntegerValues.getDay(localDate);
- assertThat(actualDayOfMonth,is(03));
- }
-}
+package com.baeldung.datetime;
+
+import static org.hamcrest.CoreMatchers.is;
+import static org.junit.Assert.assertThat;
+
+import java.time.LocalDate;
+
+import org.junit.Test;
+
+public class LocalDateExtractYearMonthDayIntegerValuesUnitTest {
+
+ LocalDateExtractYearMonthDayIntegerValues localDateExtractYearMonthDayIntegerValues=new LocalDateExtractYearMonthDayIntegerValues();
+
+ LocalDate localDate=LocalDate.parse("2007-12-03");
+
+ @Test
+ public void whenGetYear_thenCorrectYear()
+ {
+ int actualYear=localDateExtractYearMonthDayIntegerValues.getYear(localDate);
+ assertThat(actualYear,is(2007));
+ }
+
+ @Test
+ public void whenGetMonth_thenCorrectMonth()
+ {
+ int actualMonth=localDateExtractYearMonthDayIntegerValues.getMonth(localDate);
+ assertThat(actualMonth,is(12));
+ }
+
+ @Test
+ public void whenGetDay_thenCorrectDay()
+ {
+ int actualDayOfMonth=localDateExtractYearMonthDayIntegerValues.getDay(localDate);
+ assertThat(actualDayOfMonth,is(03));
+ }
+}
diff --git a/java-dates/src/test/java/com/baeldung/datetime/LocalDateTimeExtractYearMonthDayIntegerValuesUnitTest.java b/core-java-modules/core-java-datetime-computations/src/test/java/com/baeldung/datetime/LocalDateTimeExtractYearMonthDayIntegerValuesUnitTest.java
similarity index 96%
rename from java-dates/src/test/java/com/baeldung/datetime/LocalDateTimeExtractYearMonthDayIntegerValuesUnitTest.java
rename to core-java-modules/core-java-datetime-computations/src/test/java/com/baeldung/datetime/LocalDateTimeExtractYearMonthDayIntegerValuesUnitTest.java
index 70544ea970..295a4018c2 100644
--- a/java-dates/src/test/java/com/baeldung/datetime/LocalDateTimeExtractYearMonthDayIntegerValuesUnitTest.java
+++ b/core-java-modules/core-java-datetime-computations/src/test/java/com/baeldung/datetime/LocalDateTimeExtractYearMonthDayIntegerValuesUnitTest.java
@@ -1,36 +1,36 @@
-package com.baeldung.datetime;
-
-import static org.hamcrest.CoreMatchers.is;
-import static org.junit.Assert.assertThat;
-
-import java.time.LocalDateTime;
-
-import org.junit.Test;
-
-public class LocalDateTimeExtractYearMonthDayIntegerValuesUnitTest {
-
- LocalDateTimeExtractYearMonthDayIntegerValues localDateTimeExtractYearMonthDayIntegerValues = new LocalDateTimeExtractYearMonthDayIntegerValues();
-
- LocalDateTime localDateTime=LocalDateTime.parse("2007-12-03T10:15:30");
-
- @Test
- public void whenGetYear_thenCorrectYear()
- {
- int actualYear=localDateTimeExtractYearMonthDayIntegerValues.getYear(localDateTime);
- assertThat(actualYear,is(2007));
- }
-
- @Test
- public void whenGetMonth_thenCorrectMonth()
- {
- int actualMonth=localDateTimeExtractYearMonthDayIntegerValues.getMonth(localDateTime);
- assertThat(actualMonth,is(12));
- }
-
- @Test
- public void whenGetDay_thenCorrectDay()
- {
- int actualDayOfMonth=localDateTimeExtractYearMonthDayIntegerValues.getDay(localDateTime);
- assertThat(actualDayOfMonth,is(03));
- }
-}
+package com.baeldung.datetime;
+
+import static org.hamcrest.CoreMatchers.is;
+import static org.junit.Assert.assertThat;
+
+import java.time.LocalDateTime;
+
+import org.junit.Test;
+
+public class LocalDateTimeExtractYearMonthDayIntegerValuesUnitTest {
+
+ LocalDateTimeExtractYearMonthDayIntegerValues localDateTimeExtractYearMonthDayIntegerValues = new LocalDateTimeExtractYearMonthDayIntegerValues();
+
+ LocalDateTime localDateTime=LocalDateTime.parse("2007-12-03T10:15:30");
+
+ @Test
+ public void whenGetYear_thenCorrectYear()
+ {
+ int actualYear=localDateTimeExtractYearMonthDayIntegerValues.getYear(localDateTime);
+ assertThat(actualYear,is(2007));
+ }
+
+ @Test
+ public void whenGetMonth_thenCorrectMonth()
+ {
+ int actualMonth=localDateTimeExtractYearMonthDayIntegerValues.getMonth(localDateTime);
+ assertThat(actualMonth,is(12));
+ }
+
+ @Test
+ public void whenGetDay_thenCorrectDay()
+ {
+ int actualDayOfMonth=localDateTimeExtractYearMonthDayIntegerValues.getDay(localDateTime);
+ assertThat(actualDayOfMonth,is(03));
+ }
+}
diff --git a/java-dates/src/test/java/com/baeldung/datetime/OffsetDateTimeExtractYearMonthDayIntegerValuesUnitTest.java b/core-java-modules/core-java-datetime-computations/src/test/java/com/baeldung/datetime/OffsetDateTimeExtractYearMonthDayIntegerValuesUnitTest.java
similarity index 96%
rename from java-dates/src/test/java/com/baeldung/datetime/OffsetDateTimeExtractYearMonthDayIntegerValuesUnitTest.java
rename to core-java-modules/core-java-datetime-computations/src/test/java/com/baeldung/datetime/OffsetDateTimeExtractYearMonthDayIntegerValuesUnitTest.java
index efb01c49a5..3e1044e4be 100644
--- a/java-dates/src/test/java/com/baeldung/datetime/OffsetDateTimeExtractYearMonthDayIntegerValuesUnitTest.java
+++ b/core-java-modules/core-java-datetime-computations/src/test/java/com/baeldung/datetime/OffsetDateTimeExtractYearMonthDayIntegerValuesUnitTest.java
@@ -1,36 +1,36 @@
-package com.baeldung.datetime;
-
-import static org.hamcrest.CoreMatchers.is;
-import static org.junit.Assert.assertThat;
-
-import java.time.OffsetDateTime;
-
-import org.junit.Test;
-
-public class OffsetDateTimeExtractYearMonthDayIntegerValuesUnitTest {
-
- OffsetDateTimeExtractYearMonthDayIntegerValues offsetDateTimeExtractYearMonthDayIntegerValues = new OffsetDateTimeExtractYearMonthDayIntegerValues();
-
- OffsetDateTime offsetDateTime=OffsetDateTime.parse("2007-12-03T10:15:30+01:00");
-
- @Test
- public void whenGetYear_thenCorrectYear()
- {
- int actualYear=offsetDateTimeExtractYearMonthDayIntegerValues.getYear(offsetDateTime);
- assertThat(actualYear,is(2007));
- }
-
- @Test
- public void whenGetMonth_thenCorrectMonth()
- {
- int actualMonth=offsetDateTimeExtractYearMonthDayIntegerValues.getMonth(offsetDateTime);
- assertThat(actualMonth,is(12));
- }
-
- @Test
- public void whenGetDay_thenCorrectDay()
- {
- int actualDayOfMonth=offsetDateTimeExtractYearMonthDayIntegerValues.getDay(offsetDateTime);
- assertThat(actualDayOfMonth,is(03));
- }
-}
+package com.baeldung.datetime;
+
+import static org.hamcrest.CoreMatchers.is;
+import static org.junit.Assert.assertThat;
+
+import java.time.OffsetDateTime;
+
+import org.junit.Test;
+
+public class OffsetDateTimeExtractYearMonthDayIntegerValuesUnitTest {
+
+ OffsetDateTimeExtractYearMonthDayIntegerValues offsetDateTimeExtractYearMonthDayIntegerValues = new OffsetDateTimeExtractYearMonthDayIntegerValues();
+
+ OffsetDateTime offsetDateTime=OffsetDateTime.parse("2007-12-03T10:15:30+01:00");
+
+ @Test
+ public void whenGetYear_thenCorrectYear()
+ {
+ int actualYear=offsetDateTimeExtractYearMonthDayIntegerValues.getYear(offsetDateTime);
+ assertThat(actualYear,is(2007));
+ }
+
+ @Test
+ public void whenGetMonth_thenCorrectMonth()
+ {
+ int actualMonth=offsetDateTimeExtractYearMonthDayIntegerValues.getMonth(offsetDateTime);
+ assertThat(actualMonth,is(12));
+ }
+
+ @Test
+ public void whenGetDay_thenCorrectDay()
+ {
+ int actualDayOfMonth=offsetDateTimeExtractYearMonthDayIntegerValues.getDay(offsetDateTime);
+ assertThat(actualDayOfMonth,is(03));
+ }
+}
diff --git a/java-dates/src/test/java/com/baeldung/datetime/ZonedDateTimeExtractYearMonthDayIntegerValuesUnitTest.java b/core-java-modules/core-java-datetime-computations/src/test/java/com/baeldung/datetime/ZonedDateTimeExtractYearMonthDayIntegerValuesUnitTest.java
similarity index 96%
rename from java-dates/src/test/java/com/baeldung/datetime/ZonedDateTimeExtractYearMonthDayIntegerValuesUnitTest.java
rename to core-java-modules/core-java-datetime-computations/src/test/java/com/baeldung/datetime/ZonedDateTimeExtractYearMonthDayIntegerValuesUnitTest.java
index a9ed3d2b74..2f2c0a99be 100644
--- a/java-dates/src/test/java/com/baeldung/datetime/ZonedDateTimeExtractYearMonthDayIntegerValuesUnitTest.java
+++ b/core-java-modules/core-java-datetime-computations/src/test/java/com/baeldung/datetime/ZonedDateTimeExtractYearMonthDayIntegerValuesUnitTest.java
@@ -1,36 +1,36 @@
-package com.baeldung.datetime;
-
-import static org.hamcrest.CoreMatchers.is;
-import static org.junit.Assert.assertThat;
-
-import java.time.ZonedDateTime;
-
-import org.junit.Test;
-
-public class ZonedDateTimeExtractYearMonthDayIntegerValuesUnitTest {
-
- ZonedDateTimeExtractYearMonthDayIntegerValues zonedDateTimeExtractYearMonthDayIntegerValues = new ZonedDateTimeExtractYearMonthDayIntegerValues();
-
- ZonedDateTime zonedDateTime=ZonedDateTime.parse("2007-12-03T10:15:30+01:00");
-
- @Test
- public void whenGetYear_thenCorrectYear()
- {
- int actualYear=zonedDateTimeExtractYearMonthDayIntegerValues.getYear(zonedDateTime);
- assertThat(actualYear,is(2007));
- }
-
- @Test
- public void whenGetMonth_thenCorrectMonth()
- {
- int actualMonth=zonedDateTimeExtractYearMonthDayIntegerValues.getMonth(zonedDateTime);
- assertThat(actualMonth,is(12));
- }
-
- @Test
- public void whenGetDay_thenCorrectDay()
- {
- int actualDayOfMonth=zonedDateTimeExtractYearMonthDayIntegerValues.getDay(zonedDateTime);
- assertThat(actualDayOfMonth,is(03));
- }
-}
+package com.baeldung.datetime;
+
+import static org.hamcrest.CoreMatchers.is;
+import static org.junit.Assert.assertThat;
+
+import java.time.ZonedDateTime;
+
+import org.junit.Test;
+
+public class ZonedDateTimeExtractYearMonthDayIntegerValuesUnitTest {
+
+ ZonedDateTimeExtractYearMonthDayIntegerValues zonedDateTimeExtractYearMonthDayIntegerValues = new ZonedDateTimeExtractYearMonthDayIntegerValues();
+
+ ZonedDateTime zonedDateTime=ZonedDateTime.parse("2007-12-03T10:15:30+01:00");
+
+ @Test
+ public void whenGetYear_thenCorrectYear()
+ {
+ int actualYear=zonedDateTimeExtractYearMonthDayIntegerValues.getYear(zonedDateTime);
+ assertThat(actualYear,is(2007));
+ }
+
+ @Test
+ public void whenGetMonth_thenCorrectMonth()
+ {
+ int actualMonth=zonedDateTimeExtractYearMonthDayIntegerValues.getMonth(zonedDateTime);
+ assertThat(actualMonth,is(12));
+ }
+
+ @Test
+ public void whenGetDay_thenCorrectDay()
+ {
+ int actualDayOfMonth=zonedDateTimeExtractYearMonthDayIntegerValues.getDay(zonedDateTime);
+ assertThat(actualDayOfMonth,is(03));
+ }
+}
diff --git a/java-dates/src/test/java/com/baeldung/datetime/modify/DateIncrementerUnitTest.java b/core-java-modules/core-java-datetime-computations/src/test/java/com/baeldung/datetime/modify/DateIncrementerUnitTest.java
similarity index 100%
rename from java-dates/src/test/java/com/baeldung/datetime/modify/DateIncrementerUnitTest.java
rename to core-java-modules/core-java-datetime-computations/src/test/java/com/baeldung/datetime/modify/DateIncrementerUnitTest.java
diff --git a/java-dates/src/test/java/com/baeldung/dst/DaylightSavingTimeExamplesUnitTest.java b/core-java-modules/core-java-datetime-computations/src/test/java/com/baeldung/dst/DaylightSavingTimeExamplesUnitTest.java
similarity index 100%
rename from java-dates/src/test/java/com/baeldung/dst/DaylightSavingTimeExamplesUnitTest.java
rename to core-java-modules/core-java-datetime-computations/src/test/java/com/baeldung/dst/DaylightSavingTimeExamplesUnitTest.java
diff --git a/java-dates/src/test/java/com/baeldung/dst/DaylightSavingTimeJavaTimeExamplesUnitTest.java b/core-java-modules/core-java-datetime-computations/src/test/java/com/baeldung/dst/DaylightSavingTimeJavaTimeExamplesUnitTest.java
similarity index 100%
rename from java-dates/src/test/java/com/baeldung/dst/DaylightSavingTimeJavaTimeExamplesUnitTest.java
rename to core-java-modules/core-java-datetime-computations/src/test/java/com/baeldung/dst/DaylightSavingTimeJavaTimeExamplesUnitTest.java
diff --git a/java-dates/src/test/java/com/baeldung/gregorian/calendar/GregorianCalendarTester.java b/core-java-modules/core-java-datetime-computations/src/test/java/com/baeldung/gregorian/calendar/GregorianCalendarTester.java
similarity index 100%
rename from java-dates/src/test/java/com/baeldung/gregorian/calendar/GregorianCalendarTester.java
rename to core-java-modules/core-java-datetime-computations/src/test/java/com/baeldung/gregorian/calendar/GregorianCalendarTester.java
diff --git a/java-dates/src/test/java/com/baeldung/java9/time/TimeApiUnitTest.java b/core-java-modules/core-java-datetime-computations/src/test/java/com/baeldung/java9/time/TimeApiUnitTest.java
similarity index 100%
rename from java-dates/src/test/java/com/baeldung/java9/time/TimeApiUnitTest.java
rename to core-java-modules/core-java-datetime-computations/src/test/java/com/baeldung/java9/time/TimeApiUnitTest.java
diff --git a/java-dates/src/test/java/com/baeldung/jodatime/JodaTimeUnitTest.java b/core-java-modules/core-java-datetime-computations/src/test/java/com/baeldung/jodatime/JodaTimeUnitTest.java
similarity index 100%
rename from java-dates/src/test/java/com/baeldung/jodatime/JodaTimeUnitTest.java
rename to core-java-modules/core-java-datetime-computations/src/test/java/com/baeldung/jodatime/JodaTimeUnitTest.java
diff --git a/core-java-modules/core-java-datetime-java8/README.md b/core-java-modules/core-java-datetime-java8/README.md
new file mode 100644
index 0000000000..044f6f3fe3
--- /dev/null
+++ b/core-java-modules/core-java-datetime-java8/README.md
@@ -0,0 +1,15 @@
+## Java 8+ Date and Time API
+
+This module contains articles about the Date and Time API introduced with Java 8.
+
+### Relevant Articles:
+- [Introduction to the Java 8 Date/Time API](http://www.baeldung.com/java-8-date-time-intro)
+- [Migrating to the New Java 8 Date Time API](http://www.baeldung.com/migrating-to-java-8-date-time-api)
+- [Get the Current Date, Time and Timestamp in Java 8](http://www.baeldung.com/current-date-time-and-timestamp-in-java-8)
+- [TemporalAdjuster in Java](http://www.baeldung.com/java-temporal-adjuster)
+- [ZoneOffset in Java](https://www.baeldung.com/java-zone-offset)
+- [Differences Between ZonedDateTime and OffsetDateTime](https://www.baeldung.com/java-zoneddatetime-offsetdatetime)
+- [Period and Duration in Java](http://www.baeldung.com/java-period-duration)
+- [How to Get the Start and the End of a Day using Java](http://www.baeldung.com/java-day-start-end)
+- [Set the Time Zone of a Date in Java](https://www.baeldung.com/java-set-date-time-zone)
+- [Comparing Dates in Java](https://www.baeldung.com/java-comparing-dates)
diff --git a/java-dates/pom.xml b/core-java-modules/core-java-datetime-java8/pom.xml
similarity index 83%
rename from java-dates/pom.xml
rename to core-java-modules/core-java-datetime-java8/pom.xml
index 761ebd71a6..72d51b5f10 100644
--- a/java-dates/pom.xml
+++ b/core-java-modules/core-java-datetime-java8/pom.xml
@@ -1,17 +1,16 @@
4.0.0
- com.baeldung
- java-dates
- 0.1.0-SNAPSHOT
- java-dates
+ core-java-datetime-java8
+ ${project.parent.version}
+ core-java-datetime-java8
jar
com.baeldung
parent-java
0.0.1-SNAPSHOT
- ../parent-java
+ ../../parent-java
@@ -21,11 +20,10 @@
${commons-lang3.version}
- log4j
- log4j
- ${log4j.version}
+ joda-time
+ joda-time
+ ${joda-time.version}
-
org.assertj
assertj-core
@@ -33,20 +31,15 @@
test
- joda-time
- joda-time
- ${joda-time.version}
-
-
- com.darwinsys
- hirondelle-date4j
- RELEASE
+ log4j
+ log4j
+ ${log4j.version}
test
- java-dates
+ core-java-datetime-java8
src/main/resources
@@ -68,10 +61,10 @@
+ 1.9
+ 1.9
2.10
3.6.1
- 1.9
- 1.9
diff --git a/java-dates/src/main/java/com/baeldung/date/comparison/DateTimeComparisonUtils.java b/core-java-modules/core-java-datetime-java8/src/main/java/com/baeldung/date/comparison/DateTimeComparisonUtils.java
similarity index 100%
rename from java-dates/src/main/java/com/baeldung/date/comparison/DateTimeComparisonUtils.java
rename to core-java-modules/core-java-datetime-java8/src/main/java/com/baeldung/date/comparison/DateTimeComparisonUtils.java
diff --git a/java-dates/src/main/java/com/baeldung/date/comparison/LegacyDateComparisonUtils.java b/core-java-modules/core-java-datetime-java8/src/main/java/com/baeldung/date/comparison/LegacyDateComparisonUtils.java
similarity index 100%
rename from java-dates/src/main/java/com/baeldung/date/comparison/LegacyDateComparisonUtils.java
rename to core-java-modules/core-java-datetime-java8/src/main/java/com/baeldung/date/comparison/LegacyDateComparisonUtils.java
diff --git a/java-dates/src/main/java/com/baeldung/datetime/UseDuration.java b/core-java-modules/core-java-datetime-java8/src/main/java/com/baeldung/datetime/UseDuration.java
similarity index 100%
rename from java-dates/src/main/java/com/baeldung/datetime/UseDuration.java
rename to core-java-modules/core-java-datetime-java8/src/main/java/com/baeldung/datetime/UseDuration.java
diff --git a/java-dates/src/main/java/com/baeldung/datetime/UseLocalDate.java b/core-java-modules/core-java-datetime-java8/src/main/java/com/baeldung/datetime/UseLocalDate.java
similarity index 100%
rename from java-dates/src/main/java/com/baeldung/datetime/UseLocalDate.java
rename to core-java-modules/core-java-datetime-java8/src/main/java/com/baeldung/datetime/UseLocalDate.java
diff --git a/java-dates/src/main/java/com/baeldung/datetime/UseLocalDateTime.java b/core-java-modules/core-java-datetime-java8/src/main/java/com/baeldung/datetime/UseLocalDateTime.java
similarity index 100%
rename from java-dates/src/main/java/com/baeldung/datetime/UseLocalDateTime.java
rename to core-java-modules/core-java-datetime-java8/src/main/java/com/baeldung/datetime/UseLocalDateTime.java
diff --git a/java-dates/src/main/java/com/baeldung/datetime/UseLocalTime.java b/core-java-modules/core-java-datetime-java8/src/main/java/com/baeldung/datetime/UseLocalTime.java
similarity index 100%
rename from java-dates/src/main/java/com/baeldung/datetime/UseLocalTime.java
rename to core-java-modules/core-java-datetime-java8/src/main/java/com/baeldung/datetime/UseLocalTime.java
diff --git a/java-dates/src/main/java/com/baeldung/datetime/UsePeriod.java b/core-java-modules/core-java-datetime-java8/src/main/java/com/baeldung/datetime/UsePeriod.java
similarity index 100%
rename from java-dates/src/main/java/com/baeldung/datetime/UsePeriod.java
rename to core-java-modules/core-java-datetime-java8/src/main/java/com/baeldung/datetime/UsePeriod.java
diff --git a/java-dates/src/main/java/com/baeldung/datetime/UseToInstant.java b/core-java-modules/core-java-datetime-java8/src/main/java/com/baeldung/datetime/UseToInstant.java
similarity index 100%
rename from java-dates/src/main/java/com/baeldung/datetime/UseToInstant.java
rename to core-java-modules/core-java-datetime-java8/src/main/java/com/baeldung/datetime/UseToInstant.java
diff --git a/java-dates/src/main/java/com/baeldung/datetime/UseZonedDateTime.java b/core-java-modules/core-java-datetime-java8/src/main/java/com/baeldung/datetime/UseZonedDateTime.java
similarity index 100%
rename from java-dates/src/main/java/com/baeldung/datetime/UseZonedDateTime.java
rename to core-java-modules/core-java-datetime-java8/src/main/java/com/baeldung/datetime/UseZonedDateTime.java
diff --git a/java-dates/src/main/java/com/baeldung/temporaladjuster/CustomTemporalAdjuster.java b/core-java-modules/core-java-datetime-java8/src/main/java/com/baeldung/temporaladjuster/CustomTemporalAdjuster.java
similarity index 100%
rename from java-dates/src/main/java/com/baeldung/temporaladjuster/CustomTemporalAdjuster.java
rename to core-java-modules/core-java-datetime-java8/src/main/java/com/baeldung/temporaladjuster/CustomTemporalAdjuster.java
diff --git a/java-dates/src/test/java/com/baeldung/date/comparison/DateTimeComparisonUtilsUnitTest.java b/core-java-modules/core-java-datetime-java8/src/test/java/com/baeldung/date/comparison/DateTimeComparisonUtilsUnitTest.java
similarity index 100%
rename from java-dates/src/test/java/com/baeldung/date/comparison/DateTimeComparisonUtilsUnitTest.java
rename to core-java-modules/core-java-datetime-java8/src/test/java/com/baeldung/date/comparison/DateTimeComparisonUtilsUnitTest.java
diff --git a/java-dates/src/test/java/com/baeldung/date/comparison/Java8DateTimeApiGeneralComparisonsUnitTest.java b/core-java-modules/core-java-datetime-java8/src/test/java/com/baeldung/date/comparison/Java8DateTimeApiGeneralComparisonsUnitTest.java
similarity index 100%
rename from java-dates/src/test/java/com/baeldung/date/comparison/Java8DateTimeApiGeneralComparisonsUnitTest.java
rename to core-java-modules/core-java-datetime-java8/src/test/java/com/baeldung/date/comparison/Java8DateTimeApiGeneralComparisonsUnitTest.java
diff --git a/java-dates/src/test/java/com/baeldung/date/comparison/LegacyDateComparisonUtilsUnitTest.java b/core-java-modules/core-java-datetime-java8/src/test/java/com/baeldung/date/comparison/LegacyDateComparisonUtilsUnitTest.java
similarity index 100%
rename from java-dates/src/test/java/com/baeldung/date/comparison/LegacyDateComparisonUtilsUnitTest.java
rename to core-java-modules/core-java-datetime-java8/src/test/java/com/baeldung/date/comparison/LegacyDateComparisonUtilsUnitTest.java
diff --git a/java-dates/src/test/java/com/baeldung/dateapi/ConversionExample.java b/core-java-modules/core-java-datetime-java8/src/test/java/com/baeldung/dateapi/ConversionExample.java
similarity index 100%
rename from java-dates/src/test/java/com/baeldung/dateapi/ConversionExample.java
rename to core-java-modules/core-java-datetime-java8/src/test/java/com/baeldung/dateapi/ConversionExample.java
diff --git a/java-dates/src/test/java/com/baeldung/dateapi/JavaDurationUnitTest.java b/core-java-modules/core-java-datetime-java8/src/test/java/com/baeldung/dateapi/JavaDurationUnitTest.java
similarity index 100%
rename from java-dates/src/test/java/com/baeldung/dateapi/JavaDurationUnitTest.java
rename to core-java-modules/core-java-datetime-java8/src/test/java/com/baeldung/dateapi/JavaDurationUnitTest.java
diff --git a/java-dates/src/test/java/com/baeldung/dateapi/JavaPeriodUnitTest.java b/core-java-modules/core-java-datetime-java8/src/test/java/com/baeldung/dateapi/JavaPeriodUnitTest.java
similarity index 100%
rename from java-dates/src/test/java/com/baeldung/dateapi/JavaPeriodUnitTest.java
rename to core-java-modules/core-java-datetime-java8/src/test/java/com/baeldung/dateapi/JavaPeriodUnitTest.java
diff --git a/java-dates/src/test/java/com/baeldung/dateapi/JavaUtilTimeUnitTest.java b/core-java-modules/core-java-datetime-java8/src/test/java/com/baeldung/dateapi/JavaUtilTimeUnitTest.java
similarity index 100%
rename from java-dates/src/test/java/com/baeldung/dateapi/JavaUtilTimeUnitTest.java
rename to core-java-modules/core-java-datetime-java8/src/test/java/com/baeldung/dateapi/JavaUtilTimeUnitTest.java
diff --git a/java-dates/src/test/java/com/baeldung/datetime/UseLocalDateTimeUnitTest.java b/core-java-modules/core-java-datetime-java8/src/test/java/com/baeldung/datetime/UseLocalDateTimeUnitTest.java
similarity index 100%
rename from java-dates/src/test/java/com/baeldung/datetime/UseLocalDateTimeUnitTest.java
rename to core-java-modules/core-java-datetime-java8/src/test/java/com/baeldung/datetime/UseLocalDateTimeUnitTest.java
diff --git a/java-dates/src/test/java/com/baeldung/datetime/UseLocalDateUnitTest.java b/core-java-modules/core-java-datetime-java8/src/test/java/com/baeldung/datetime/UseLocalDateUnitTest.java
similarity index 100%
rename from java-dates/src/test/java/com/baeldung/datetime/UseLocalDateUnitTest.java
rename to core-java-modules/core-java-datetime-java8/src/test/java/com/baeldung/datetime/UseLocalDateUnitTest.java
diff --git a/java-dates/src/test/java/com/baeldung/datetime/UseLocalTimeUnitTest.java b/core-java-modules/core-java-datetime-java8/src/test/java/com/baeldung/datetime/UseLocalTimeUnitTest.java
similarity index 100%
rename from java-dates/src/test/java/com/baeldung/datetime/UseLocalTimeUnitTest.java
rename to core-java-modules/core-java-datetime-java8/src/test/java/com/baeldung/datetime/UseLocalTimeUnitTest.java
diff --git a/java-dates/src/test/java/com/baeldung/datetime/UsePeriodUnitTest.java b/core-java-modules/core-java-datetime-java8/src/test/java/com/baeldung/datetime/UsePeriodUnitTest.java
similarity index 100%
rename from java-dates/src/test/java/com/baeldung/datetime/UsePeriodUnitTest.java
rename to core-java-modules/core-java-datetime-java8/src/test/java/com/baeldung/datetime/UsePeriodUnitTest.java
diff --git a/java-dates/src/test/java/com/baeldung/datetime/UseTimeZoneUnitTest.java b/core-java-modules/core-java-datetime-java8/src/test/java/com/baeldung/datetime/UseTimeZoneUnitTest.java
similarity index 97%
rename from java-dates/src/test/java/com/baeldung/datetime/UseTimeZoneUnitTest.java
rename to core-java-modules/core-java-datetime-java8/src/test/java/com/baeldung/datetime/UseTimeZoneUnitTest.java
index 4423ac6ce0..7e403ddcab 100644
--- a/java-dates/src/test/java/com/baeldung/datetime/UseTimeZoneUnitTest.java
+++ b/core-java-modules/core-java-datetime-java8/src/test/java/com/baeldung/datetime/UseTimeZoneUnitTest.java
@@ -1,72 +1,72 @@
-package com.baeldung.datetime;
-
-import java.text.SimpleDateFormat;
-import java.time.Instant;
-import java.time.ZoneId;
-import java.time.ZonedDateTime;
-import java.time.format.DateTimeFormatter;
-import java.util.Calendar;
-import java.util.Date;
-import java.util.TimeZone;
-
-import org.joda.time.DateTime;
-import org.joda.time.DateTimeZone;
-import org.junit.Assert;
-import org.junit.Test;
-
-public class UseTimeZoneUnitTest {
-
- /* https://en.wikipedia.org/wiki/List_of_tz_database_time_zones */
-
- String timeZone = "Asia/Singapore";
-
- private static final String PATTERN = "E yyyy-MM-dd HH:mm:ss a";
-
- @Test
- public void givenDateWithoutTimeZone_WhenSetTimeZoneUsingJava7_ThenTimeZoneIsSetSuccessfully() {
- Date nowUtc = new Date();
- TimeZone asiaSingapore = TimeZone.getTimeZone(timeZone);
-
- Calendar nowAsiaSingapore = Calendar.getInstance(asiaSingapore);
- nowAsiaSingapore.setTime(nowUtc);
-
- SimpleDateFormat simpleDateFormat = new SimpleDateFormat(PATTERN);
- simpleDateFormat.setTimeZone(TimeZone.getTimeZone(timeZone));
-
- System.out.println(String.format("Java7: Time now in '%s' is '%s'", nowAsiaSingapore.getTimeZone()
- .getID(), simpleDateFormat.format(nowAsiaSingapore.getTime())));
-
- Assert.assertEquals(nowUtc.toInstant().getEpochSecond(), nowAsiaSingapore.toInstant().getEpochSecond());
- Assert.assertEquals(asiaSingapore, nowAsiaSingapore.getTimeZone());
-
- }
-
- @Test
- public void givenDateWithoutTimeZone_WhenSetTimeZoneUsingJava8_ThenTimeZoneIsSetSuccessfully() {
- Instant nowUtc = Instant.now();
- ZoneId asiaSingapore = ZoneId.of(timeZone);
-
- ZonedDateTime nowAsiaSingapore = ZonedDateTime.ofInstant(nowUtc, asiaSingapore);
-
- System.out.println(String.format("Java8: Time now in '%s' is '%s'", nowAsiaSingapore.getZone(),
- nowAsiaSingapore.format(DateTimeFormatter.ofPattern(PATTERN))));
-
- Assert.assertEquals(nowUtc.getEpochSecond(), nowAsiaSingapore.toEpochSecond());
- Assert.assertEquals(asiaSingapore, nowAsiaSingapore.getZone());
- }
-
- @Test
- public void givenDateWithoutTimeZone_WhenSetTimeZoneUsingJodaTime_ThenTimeZoneIsSetSuccessfully() {
- org.joda.time.Instant nowUtc = org.joda.time.Instant.now();
- DateTimeZone asiaSingapore = DateTimeZone.forID(timeZone);
-
- DateTime nowAsiaSingapore = nowUtc.toDateTime(asiaSingapore);
-
- System.out.println(String.format("Joda-time: Time now in '%s' is '%s'", nowAsiaSingapore.getZone(),
- nowAsiaSingapore.toString(PATTERN)));
-
- Assert.assertEquals(nowUtc.toInstant().getMillis(), nowAsiaSingapore.toInstant().getMillis());
- Assert.assertEquals(asiaSingapore, nowAsiaSingapore.getZone());
- }
-
-}
+package com.baeldung.datetime;
+
+import java.text.SimpleDateFormat;
+import java.time.Instant;
+import java.time.ZoneId;
+import java.time.ZonedDateTime;
+import java.time.format.DateTimeFormatter;
+import java.util.Calendar;
+import java.util.Date;
+import java.util.TimeZone;
+
+import org.joda.time.DateTime;
+import org.joda.time.DateTimeZone;
+import org.junit.Assert;
+import org.junit.Test;
+
+public class UseTimeZoneUnitTest {
+
+ /* https://en.wikipedia.org/wiki/List_of_tz_database_time_zones */
+
+ String timeZone = "Asia/Singapore";
+
+ private static final String PATTERN = "E yyyy-MM-dd HH:mm:ss a";
+
+ @Test
+ public void givenDateWithoutTimeZone_WhenSetTimeZoneUsingJava7_ThenTimeZoneIsSetSuccessfully() {
+ Date nowUtc = new Date();
+ TimeZone asiaSingapore = TimeZone.getTimeZone(timeZone);
+
+ Calendar nowAsiaSingapore = Calendar.getInstance(asiaSingapore);
+ nowAsiaSingapore.setTime(nowUtc);
+
+ SimpleDateFormat simpleDateFormat = new SimpleDateFormat(PATTERN);
+ simpleDateFormat.setTimeZone(TimeZone.getTimeZone(timeZone));
+
+ System.out.println(String.format("Java7: Time now in '%s' is '%s'", nowAsiaSingapore.getTimeZone()
+ .getID(), simpleDateFormat.format(nowAsiaSingapore.getTime())));
+
+ Assert.assertEquals(nowUtc.toInstant().getEpochSecond(), nowAsiaSingapore.toInstant().getEpochSecond());
+ Assert.assertEquals(asiaSingapore, nowAsiaSingapore.getTimeZone());
+
+ }
+
+ @Test
+ public void givenDateWithoutTimeZone_WhenSetTimeZoneUsingJava8_ThenTimeZoneIsSetSuccessfully() {
+ Instant nowUtc = Instant.now();
+ ZoneId asiaSingapore = ZoneId.of(timeZone);
+
+ ZonedDateTime nowAsiaSingapore = ZonedDateTime.ofInstant(nowUtc, asiaSingapore);
+
+ System.out.println(String.format("Java8: Time now in '%s' is '%s'", nowAsiaSingapore.getZone(),
+ nowAsiaSingapore.format(DateTimeFormatter.ofPattern(PATTERN))));
+
+ Assert.assertEquals(nowUtc.getEpochSecond(), nowAsiaSingapore.toEpochSecond());
+ Assert.assertEquals(asiaSingapore, nowAsiaSingapore.getZone());
+ }
+
+ @Test
+ public void givenDateWithoutTimeZone_WhenSetTimeZoneUsingJodaTime_ThenTimeZoneIsSetSuccessfully() {
+ org.joda.time.Instant nowUtc = org.joda.time.Instant.now();
+ DateTimeZone asiaSingapore = DateTimeZone.forID(timeZone);
+
+ DateTime nowAsiaSingapore = nowUtc.toDateTime(asiaSingapore);
+
+ System.out.println(String.format("Joda-time: Time now in '%s' is '%s'", nowAsiaSingapore.getZone(),
+ nowAsiaSingapore.toString(PATTERN)));
+
+ Assert.assertEquals(nowUtc.toInstant().getMillis(), nowAsiaSingapore.toInstant().getMillis());
+ Assert.assertEquals(asiaSingapore, nowAsiaSingapore.getZone());
+ }
+
+}
diff --git a/java-dates/src/test/java/com/baeldung/datetime/UseZonedDateTimeUnitTest.java b/core-java-modules/core-java-datetime-java8/src/test/java/com/baeldung/datetime/UseZonedDateTimeUnitTest.java
similarity index 100%
rename from java-dates/src/test/java/com/baeldung/datetime/UseZonedDateTimeUnitTest.java
rename to core-java-modules/core-java-datetime-java8/src/test/java/com/baeldung/datetime/UseZonedDateTimeUnitTest.java
diff --git a/java-dates/src/test/java/com/baeldung/temporaladjusters/CustomTemporalAdjusterUnitTest.java b/core-java-modules/core-java-datetime-java8/src/test/java/com/baeldung/temporaladjusters/CustomTemporalAdjusterUnitTest.java
similarity index 100%
rename from java-dates/src/test/java/com/baeldung/temporaladjusters/CustomTemporalAdjusterUnitTest.java
rename to core-java-modules/core-java-datetime-java8/src/test/java/com/baeldung/temporaladjusters/CustomTemporalAdjusterUnitTest.java
diff --git a/java-dates/src/test/java/com/baeldung/temporaladjusters/TemporalAdjustersUnitTest.java b/core-java-modules/core-java-datetime-java8/src/test/java/com/baeldung/temporaladjusters/TemporalAdjustersUnitTest.java
similarity index 100%
rename from java-dates/src/test/java/com/baeldung/temporaladjusters/TemporalAdjustersUnitTest.java
rename to core-java-modules/core-java-datetime-java8/src/test/java/com/baeldung/temporaladjusters/TemporalAdjustersUnitTest.java
diff --git a/core-java-modules/core-java-time-measurements/README.md b/core-java-modules/core-java-time-measurements/README.md
new file mode 100644
index 0000000000..1bd277b6b1
--- /dev/null
+++ b/core-java-modules/core-java-time-measurements/README.md
@@ -0,0 +1,8 @@
+## Java Time Measurements
+
+This module contains articles about the measurement of time in Java.
+
+### Relevant Articles:
+- [Guide to the Java Clock Class](http://www.baeldung.com/java-clock)
+- [Measure Elapsed Time in Java](http://www.baeldung.com/java-measure-elapsed-time)
+- [Overriding System Time for Testing in Java](https://www.baeldung.com/java-override-system-time)
diff --git a/core-java-modules/core-java-time-measurements/pom.xml b/core-java-modules/core-java-time-measurements/pom.xml
new file mode 100644
index 0000000000..0ff3787051
--- /dev/null
+++ b/core-java-modules/core-java-time-measurements/pom.xml
@@ -0,0 +1,102 @@
+
+ 4.0.0
+ com.baeldung.exception.numberformat
+ core-java-time-measurements
+ 0.0.1-SNAPSHOT
+ jar
+ core-java-time-measurements
+
+
+ com.baeldung
+ parent-java
+ 0.0.1-SNAPSHOT
+ ../../parent-java
+
+
+
+
+ org.apache.commons
+ commons-lang3
+ ${commons-lang3.version}
+
+
+ org.projectlombok
+ lombok
+ ${lombok.version}
+ provided
+
+
+
+ org.assertj
+ assertj-core
+ ${assertj.version}
+ test
+
+
+ joda-time
+ joda-time
+ ${joda.version}
+
+
+ org.aspectj
+ aspectjrt
+ ${asspectj.version}
+
+
+ org.powermock
+ powermock-module-junit4
+ ${powermock.version}
+ test
+
+
+ org.powermock
+ powermock-api-mockito2
+ ${powermock.version}
+ test
+
+
+ org.jmockit
+ jmockit
+ ${jmockit.version}
+ test
+
+
+
+
+ core-java-time-measurements
+
+
+ src/main/resources
+ true
+
+
+
+
+
+ maven-surefire-plugin
+ ${maven-surefire-plugin.version}
+
+
+ -javaagent:${settings.localRepository}/org/jmockit/jmockit/${jmockit.version}/jmockit-${jmockit.version}.jar
+
+ true
+
+
+
+
+
+
+
+ 3.6.1
+ 2.10
+
+ 3.6.1
+ 1.8.9
+ 2.0.0-RC.4
+ 1.44
+
+ 2.22.1
+
+
diff --git a/core-java-modules/core-java-datetime/src/main/resources/logback.xml b/core-java-modules/core-java-time-measurements/src/main/resources/logback.xml
similarity index 100%
rename from core-java-modules/core-java-datetime/src/main/resources/logback.xml
rename to core-java-modules/core-java-time-measurements/src/main/resources/logback.xml
diff --git a/core-java-modules/core-java/src/test/java/com/baeldung/java/clock/ClockUnitTest.java b/core-java-modules/core-java-time-measurements/src/test/java/com/baeldung/java/clock/ClockUnitTest.java
similarity index 100%
rename from core-java-modules/core-java/src/test/java/com/baeldung/java/clock/ClockUnitTest.java
rename to core-java-modules/core-java-time-measurements/src/test/java/com/baeldung/java/clock/ClockUnitTest.java
diff --git a/java-dates/src/test/java/com/baeldung/time/ElapsedTimeUnitTest.java b/core-java-modules/core-java-time-measurements/src/test/java/com/baeldung/time/ElapsedTimeUnitTest.java
similarity index 100%
rename from java-dates/src/test/java/com/baeldung/time/ElapsedTimeUnitTest.java
rename to core-java-modules/core-java-time-measurements/src/test/java/com/baeldung/time/ElapsedTimeUnitTest.java
diff --git a/core-java-modules/core-java-datetime/src/test/java/com/baeldung/time/InstantUnitTest.java b/core-java-modules/core-java-time-measurements/src/test/java/com/baeldung/time/InstantUnitTest.java
similarity index 100%
rename from core-java-modules/core-java-datetime/src/test/java/com/baeldung/time/InstantUnitTest.java
rename to core-java-modules/core-java-time-measurements/src/test/java/com/baeldung/time/InstantUnitTest.java
diff --git a/core-java-modules/core-java-datetime/src/test/java/com/baeldung/time/InstantWithJMockUnitTest.java b/core-java-modules/core-java-time-measurements/src/test/java/com/baeldung/time/InstantWithJMockUnitTest.java
similarity index 100%
rename from core-java-modules/core-java-datetime/src/test/java/com/baeldung/time/InstantWithJMockUnitTest.java
rename to core-java-modules/core-java-time-measurements/src/test/java/com/baeldung/time/InstantWithJMockUnitTest.java
diff --git a/core-java-modules/core-java-datetime/src/test/java/com/baeldung/time/LocalDateTimeUnitTest.java b/core-java-modules/core-java-time-measurements/src/test/java/com/baeldung/time/LocalDateTimeUnitTest.java
similarity index 100%
rename from core-java-modules/core-java-datetime/src/test/java/com/baeldung/time/LocalDateTimeUnitTest.java
rename to core-java-modules/core-java-time-measurements/src/test/java/com/baeldung/time/LocalDateTimeUnitTest.java
diff --git a/core-java-modules/core-java-datetime/src/test/java/com/baeldung/time/LocalDateTimeWithJMockUnitTest.java b/core-java-modules/core-java-time-measurements/src/test/java/com/baeldung/time/LocalDateTimeWithJMockUnitTest.java
similarity index 100%
rename from core-java-modules/core-java-datetime/src/test/java/com/baeldung/time/LocalDateTimeWithJMockUnitTest.java
rename to core-java-modules/core-java-time-measurements/src/test/java/com/baeldung/time/LocalDateTimeWithJMockUnitTest.java
diff --git a/core-java-modules/core-java/README.md b/core-java-modules/core-java/README.md
index a592449799..41275f6367 100644
--- a/core-java-modules/core-java/README.md
+++ b/core-java-modules/core-java/README.md
@@ -21,7 +21,6 @@
- [ASCII Art in Java](http://www.baeldung.com/ascii-art-in-java)
- [What is the serialVersionUID?](http://www.baeldung.com/java-serial-version-uid)
- [A Guide to the ResourceBundle](http://www.baeldung.com/java-resourcebundle)
-- [Guide to the Java Clock Class](http://www.baeldung.com/java-clock)
- [Importance of Main Manifest Attribute in a Self-Executing JAR](http://www.baeldung.com/java-jar-executable-manifest-main-class)
- [Java Global Exception Handler](http://www.baeldung.com/java-global-exception-handler)
- [How to Get the Size of an Object in Java](http://www.baeldung.com/java-size-of-object)
diff --git a/java-dates/.gitignore b/java-dates/.gitignore
deleted file mode 100644
index 3de4cc647e..0000000000
--- a/java-dates/.gitignore
+++ /dev/null
@@ -1,26 +0,0 @@
-*.class
-
-0.*
-
-#folders#
-/target
-/neoDb*
-/data
-/src/main/webapp/WEB-INF/classes
-*/META-INF/*
-.resourceCache
-
-# Packaged files #
-*.jar
-*.war
-*.ear
-
-# Files generated by integration tests
-*.txt
-backup-pom.xml
-/bin/
-/temp
-
-#IntelliJ specific
-.idea/
-*.iml
\ No newline at end of file
diff --git a/java-dates/README.md b/java-dates/README.md
deleted file mode 100644
index d4657a3057..0000000000
--- a/java-dates/README.md
+++ /dev/null
@@ -1,24 +0,0 @@
-=========
-
-## Java Dates Cookbooks and Examples
-
-### Relevant Articles:
-- [TemporalAdjuster in Java](http://www.baeldung.com/java-temporal-adjuster)
-- [Handling Daylight Savings Time in Java](http://www.baeldung.com/java-daylight-savings)
-- [Period and Duration in Java](http://www.baeldung.com/java-period-duration)
-- [Difference Between Two Dates in Java](http://www.baeldung.com/java-date-difference)
-- [Migrating to the New Java 8 Date Time API](http://www.baeldung.com/migrating-to-java-8-date-time-api)
-- [Introduction to the Java 8 Date/Time API](http://www.baeldung.com/java-8-date-time-intro)
-- [Get the Current Date, Time and Timestamp in Java 8](http://www.baeldung.com/current-date-time-and-timestamp-in-java-8)
-- [Get Date Without Time in Java](http://www.baeldung.com/java-date-without-time)
-- [How to Get All Dates Between Two Dates?](http://www.baeldung.com/java-between-dates)
-- [Extracting Year, Month and Day from Date in Java](http://www.baeldung.com/java-year-month-day)
-- [Guide to java.util.GregorianCalendar](http://www.baeldung.com/java-gregorian-calendar)
-- [Measure Elapsed Time in Java](http://www.baeldung.com/java-measure-elapsed-time)
-- [How to Get the Start and the End of a Day using Java](http://www.baeldung.com/java-day-start-end)
-- [Calculate Age in Java](http://www.baeldung.com/java-get-age)
-- [Increment Date in Java](http://www.baeldung.com/java-increment-date)
-- [Add Hours To a Date In Java](http://www.baeldung.com/java-add-hours-date)
-- [ZoneOffset in Java](https://www.baeldung.com/java-zone-offset)
-- [Differences Between ZonedDateTime and OffsetDateTime](https://www.baeldung.com/java-zoneddatetime-offsetdatetime)
-- [Introduction to Joda-Time](https://www.baeldung.com/joda-time)
diff --git a/java-dates/src/main/java/com/baeldung/datetime/README.md b/java-dates/src/main/java/com/baeldung/datetime/README.md
deleted file mode 100644
index 7d843af9ea..0000000000
--- a/java-dates/src/main/java/com/baeldung/datetime/README.md
+++ /dev/null
@@ -1 +0,0 @@
-### Relevant Articles:
diff --git a/java-dates/src/main/resources/logback.xml b/java-dates/src/main/resources/logback.xml
deleted file mode 100644
index 7d900d8ea8..0000000000
--- a/java-dates/src/main/resources/logback.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
-
- %d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/java-dates/src/test/resources/.gitignore b/java-dates/src/test/resources/.gitignore
deleted file mode 100644
index 83c05e60c8..0000000000
--- a/java-dates/src/test/resources/.gitignore
+++ /dev/null
@@ -1,13 +0,0 @@
-*.class
-
-#folders#
-/target
-/neoDb*
-/data
-/src/main/webapp/WEB-INF/classes
-*/META-INF/*
-
-# Packaged files #
-*.jar
-*.war
-*.ear
\ No newline at end of file
diff --git a/pom.xml b/pom.xml
index d61d12ad4d..f9e45f5c93 100644
--- a/pom.xml
+++ b/pom.xml
@@ -393,8 +393,14 @@
core-java-modules/core-java-streams
core-java-modules/core-java-function
core-java-modules/core-java-lang-math
-
-
+
+
core-java-modules/core-java-text
core-java-modules/core-java-lambdas
@@ -1157,8 +1163,14 @@
core-java-modules/core-java-streams
core-java-modules/core-java-function
core-java-modules/core-java-lang-math
-
-
+
+
core-java-modules/core-java-text