diff --git a/java-dates-2/.gitignore b/java-dates-2/.gitignore
new file mode 100644
index 0000000000..6471aabbcf
--- /dev/null
+++ b/java-dates-2/.gitignore
@@ -0,0 +1,29 @@
+*.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
+
+#jenv
+.java-version
\ No newline at end of file
diff --git a/java-dates-2/pom.xml b/java-dates-2/pom.xml
new file mode 100644
index 0000000000..c2464ed47f
--- /dev/null
+++ b/java-dates-2/pom.xml
@@ -0,0 +1,55 @@
+
+ 4.0.0
+ com.baeldung
+ java-dates-2
+ 0.1.0-SNAPSHOT
+ jar
+ java-dates-2
+
+
+ com.baeldung
+ parent-java
+ 0.0.1-SNAPSHOT
+ ../parent-java
+
+
+
+
+
+ org.assertj
+ assertj-core
+ ${assertj.version}
+ test
+
+
+
+
+ java-dates-2
+
+
+ src/main/resources
+ true
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-compiler-plugin
+ ${maven-compiler-plugin.version}
+
+
+ ${maven.compiler.target}
+
+
+
+
+
+
+
+ 3.6.1
+ 1.9
+ 1.9
+
+
diff --git a/java-dates-2/src/test/java/com/baeldung/xmlgregoriancalendar/XmlGregorianCalendarConverterUnitTest.java b/java-dates-2/src/test/java/com/baeldung/xmlgregoriancalendar/XmlGregorianCalendarConverterUnitTest.java
new file mode 100644
index 0000000000..b221c04199
--- /dev/null
+++ b/java-dates-2/src/test/java/com/baeldung/xmlgregoriancalendar/XmlGregorianCalendarConverterUnitTest.java
@@ -0,0 +1,36 @@
+package com.baeldung.xmlgregoriancalendar;
+
+import org.junit.Test;
+
+import javax.xml.datatype.DatatypeConfigurationException;
+import javax.xml.datatype.DatatypeConstants;
+import javax.xml.datatype.DatatypeFactory;
+import javax.xml.datatype.XMLGregorianCalendar;
+import java.time.LocalDate;
+
+import static org.assertj.core.api.Assertions.assertThat;
+
+public class XmlGregorianCalendarConverterUnitTest {
+
+ @Test
+ public void fromLocalDateToXMLGregorianCalendar() throws DatatypeConfigurationException {
+ LocalDate localDate = LocalDate.of(2017, 4, 25);
+ XMLGregorianCalendar xmlGregorianCalendar = DatatypeFactory.newInstance().newXMLGregorianCalendar(localDate.toString());
+
+ assertThat(xmlGregorianCalendar.getYear()).isEqualTo(localDate.getYear());
+ assertThat(xmlGregorianCalendar.getMonth()).isEqualTo(localDate.getMonthValue());
+ assertThat(xmlGregorianCalendar.getDay()).isEqualTo(localDate.getDayOfMonth());
+ assertThat(xmlGregorianCalendar.getTimezone()).isEqualTo(DatatypeConstants.FIELD_UNDEFINED);
+ }
+
+ @Test
+ public void fromXMLGregorianCalendarToLocalDate() throws DatatypeConfigurationException {
+ XMLGregorianCalendar xmlGregorianCalendar = DatatypeFactory.newInstance().newXMLGregorianCalendar("2017-04-25");
+ LocalDate localDate = LocalDate.of(xmlGregorianCalendar.getYear(), xmlGregorianCalendar.getMonth(), xmlGregorianCalendar.getDay());
+
+ assertThat(localDate.getYear()).isEqualTo(xmlGregorianCalendar.getYear());
+ assertThat(localDate.getMonthValue()).isEqualTo(xmlGregorianCalendar.getMonth());
+ assertThat(localDate.getDayOfMonth()).isEqualTo(xmlGregorianCalendar.getDay());
+ }
+
+}
diff --git a/pom.xml b/pom.xml
index d29824b085..bf225d82f0 100644
--- a/pom.xml
+++ b/pom.xml
@@ -440,6 +440,7 @@
java-collections-conversions
java-collections-maps
+
java-lite
java-numbers