diff --git a/core-java-modules/core-java-date-operations/pom.xml b/core-java-modules/core-java-date-operations/pom.xml new file mode 100644 index 0000000000..f6e75ca518 --- /dev/null +++ b/core-java-modules/core-java-date-operations/pom.xml @@ -0,0 +1,17 @@ + + + 4.0.0 + core-java-date-operations + ${project.parent.version} + jar + + + com.baeldung + parent-java + 0.0.1-SNAPSHOT + ../../parent-java + + + \ No newline at end of file diff --git a/core-java-modules/core-java-date-operations/src/main/java/com/baeldung/sql/DateUtils.java b/core-java-modules/core-java-date-operations/src/main/java/com/baeldung/sql/DateUtils.java new file mode 100644 index 0000000000..265ae540aa --- /dev/null +++ b/core-java-modules/core-java-date-operations/src/main/java/com/baeldung/sql/DateUtils.java @@ -0,0 +1,21 @@ +package com.baeldung.sql; + +import java.sql.Date; +import java.text.ParseException; +import java.text.SimpleDateFormat; + +public class DateUtils { + + public static Date getNow() { + return new Date(System.currentTimeMillis()); + } + + public static Date getDate(String dateAsString) { + return Date.valueOf(dateAsString); + } + + public static Date getDate(String dateAsString, String pattern) throws ParseException { + java.util.Date customUtilDate = new SimpleDateFormat(pattern).parse(dateAsString); + return new Date(customUtilDate.getTime()); + } +} \ No newline at end of file diff --git a/core-java-modules/core-java-date-operations/src/main/java/com/baeldung/sql/TimeUtils.java b/core-java-modules/core-java-date-operations/src/main/java/com/baeldung/sql/TimeUtils.java new file mode 100644 index 0000000000..b0537e57e8 --- /dev/null +++ b/core-java-modules/core-java-date-operations/src/main/java/com/baeldung/sql/TimeUtils.java @@ -0,0 +1,21 @@ +package com.baeldung.sql; + +import java.sql.Time; +import java.text.ParseException; +import java.text.SimpleDateFormat; + +public class TimeUtils { + + public static Time getNow() { + return new Time(System.currentTimeMillis()); + } + + public static Time getTime(String timeAsString) { + return Time.valueOf(timeAsString); + } + + public static Time getTime(String dateAsString, String pattern) throws ParseException { + java.util.Date customUtilDate = new SimpleDateFormat(pattern).parse(dateAsString); + return new Time(customUtilDate.getTime()); + } +} \ No newline at end of file diff --git a/core-java-modules/core-java-date-operations/src/main/java/com/baeldung/sql/TimestampUtils.java b/core-java-modules/core-java-date-operations/src/main/java/com/baeldung/sql/TimestampUtils.java new file mode 100644 index 0000000000..3f4f83b792 --- /dev/null +++ b/core-java-modules/core-java-date-operations/src/main/java/com/baeldung/sql/TimestampUtils.java @@ -0,0 +1,21 @@ +package com.baeldung.sql; + +import java.sql.Timestamp; +import java.text.ParseException; +import java.text.SimpleDateFormat; + +public class TimestampUtils { + + public static Timestamp getNow() { + return new Timestamp(System.currentTimeMillis()); + } + + public static Timestamp getTimestamp(String timestampAsString) { + return Timestamp.valueOf(timestampAsString); + } + + public static Timestamp getTimestamp(String dateAsString, String pattern) throws ParseException { + java.util.Date customUtilDate = new SimpleDateFormat(pattern).parse(dateAsString); + return new Timestamp(customUtilDate.getTime()); + } +} \ No newline at end of file diff --git a/core-java-modules/core-java-date-operations/src/test/java/com/baeldung/sql/DateUtilsUnitTest.java b/core-java-modules/core-java-date-operations/src/test/java/com/baeldung/sql/DateUtilsUnitTest.java new file mode 100644 index 0000000000..964aeb4405 --- /dev/null +++ b/core-java-modules/core-java-date-operations/src/test/java/com/baeldung/sql/DateUtilsUnitTest.java @@ -0,0 +1,26 @@ +package com.baeldung.sql; + +import static org.junit.Assert.assertEquals; + +import org.junit.Test; + +import java.text.ParseException; +import java.util.Date; + +public class DateUtilsUnitTest { + + @Test + public void givenCurrentDate_thenTodayIsReturned() { + assertEquals(DateUtils.getNow(), new Date()); + } + + @Test(expected = IllegalArgumentException.class) + public void givenDateAsString_whenPatternIsNotRespected_thenExceptionIsThrown() { + DateUtils.getDate("2020 01 01"); + } + + @Test + public void givenDateAndPattern_thenDateIsCorrectlyReturned() throws ParseException { + assertEquals(DateUtils.getDate("2020-01-01"), DateUtils.getDate("2020/01/01", "yyyy/MM/dd")); + } +} \ No newline at end of file diff --git a/core-java-modules/core-java-date-operations/src/test/java/com/baeldung/sql/TimeUtilsUnitTest.java b/core-java-modules/core-java-date-operations/src/test/java/com/baeldung/sql/TimeUtilsUnitTest.java new file mode 100644 index 0000000000..ef4dea338a --- /dev/null +++ b/core-java-modules/core-java-date-operations/src/test/java/com/baeldung/sql/TimeUtilsUnitTest.java @@ -0,0 +1,26 @@ +package com.baeldung.sql; + +import static org.junit.Assert.assertEquals; + +import org.junit.Test; + +import java.text.ParseException; +import java.util.Date; + +public class TimeUtilsUnitTest { + + @Test + public void givenCurrentTime_thenNowIsReturned() { + assertEquals(TimeUtils.getNow(), new Date()); + } + + @Test(expected = IllegalArgumentException.class) + public void givenTimeAsString_whenPatternIsNotRespected_thenExceptionIsThrown() { + TimeUtils.getTime("10 11 12"); + } + + @Test + public void givenTimeAndPattern_thenTimeIsCorrectlyReturned() throws ParseException { + assertEquals(TimeUtils.getTime("10:11:12"), TimeUtils.getTime("10 11 12", "hh mm ss")); + } +} \ No newline at end of file diff --git a/core-java-modules/core-java-date-operations/src/test/java/com/baeldung/sql/TimestampUtilsUnitTest.java b/core-java-modules/core-java-date-operations/src/test/java/com/baeldung/sql/TimestampUtilsUnitTest.java new file mode 100644 index 0000000000..04925abc43 --- /dev/null +++ b/core-java-modules/core-java-date-operations/src/test/java/com/baeldung/sql/TimestampUtilsUnitTest.java @@ -0,0 +1,26 @@ +package com.baeldung.sql; + +import static org.junit.Assert.assertEquals; + +import org.junit.Test; + +import java.text.ParseException; +import java.util.Date; + +public class TimestampUtilsUnitTest { + + @Test + public void givenCurrentTimestamp_thenNowIsReturned() { + assertEquals(TimestampUtils.getNow().toInstant(), new Date().toInstant()); + } + + @Test(expected = IllegalArgumentException.class) + public void givenTimestampAsString_whenPatternIsNotRespected_thenExceptionIsThrown() { + TimestampUtils.getTimestamp("2020/01/01 10:11-12"); + } + + @Test + public void givenTimestampAndPattern_thenTimestampIsCorrectlyReturned() throws ParseException { + assertEquals(TimestampUtils.getTimestamp("2020-01-01 10:11:12"), TimestampUtils.getTimestamp("2020/01/01 10:11-12", "yyyy/MM/dd hh:mm-ss")); + } +} \ No newline at end of file