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/legacy/sqlpackage/DateUtils.java b/core-java-modules/core-java-date-operations/src/main/java/com/baeldung/legacy/sqlpackage/DateUtils.java new file mode 100644 index 0000000000..b430c1cb17 --- /dev/null +++ b/core-java-modules/core-java-date-operations/src/main/java/com/baeldung/legacy/sqlpackage/DateUtils.java @@ -0,0 +1,21 @@ +package com.baeldung.legacy.sqlpackage; + +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/legacy/sqlpackage/TimeUtils.java b/core-java-modules/core-java-date-operations/src/main/java/com/baeldung/legacy/sqlpackage/TimeUtils.java new file mode 100644 index 0000000000..352a04b23b --- /dev/null +++ b/core-java-modules/core-java-date-operations/src/main/java/com/baeldung/legacy/sqlpackage/TimeUtils.java @@ -0,0 +1,21 @@ +package com.baeldung.legacy.sqlpackage; + +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/legacy/sqlpackage/TimestampUtils.java b/core-java-modules/core-java-date-operations/src/main/java/com/baeldung/legacy/sqlpackage/TimestampUtils.java new file mode 100644 index 0000000000..350eb71497 --- /dev/null +++ b/core-java-modules/core-java-date-operations/src/main/java/com/baeldung/legacy/sqlpackage/TimestampUtils.java @@ -0,0 +1,21 @@ +package com.baeldung.legacy.sqlpackage; + +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/main/java/com/baeldung/legacy/utilpackage/CalendarUtils.java b/core-java-modules/core-java-date-operations/src/main/java/com/baeldung/legacy/utilpackage/CalendarUtils.java new file mode 100644 index 0000000000..cea7936004 --- /dev/null +++ b/core-java-modules/core-java-date-operations/src/main/java/com/baeldung/legacy/utilpackage/CalendarUtils.java @@ -0,0 +1,15 @@ +package com.baeldung.legacy.utilpackage; + +import java.text.ParseException; +import java.util.Calendar; +import java.util.Date; + +public class CalendarUtils { + + public static Calendar getPlusDays(Date date, int amount) throws ParseException { + Calendar calendar = Calendar.getInstance(); + calendar.setTime(date); + calendar.add(Calendar.DAY_OF_YEAR, amount); + return calendar; + } +} \ No newline at end of file diff --git a/core-java-modules/core-java-date-operations/src/main/java/com/baeldung/legacy/utilpackage/DateUtils.java b/core-java-modules/core-java-date-operations/src/main/java/com/baeldung/legacy/utilpackage/DateUtils.java new file mode 100644 index 0000000000..5eb98e0d74 --- /dev/null +++ b/core-java-modules/core-java-date-operations/src/main/java/com/baeldung/legacy/utilpackage/DateUtils.java @@ -0,0 +1,20 @@ +package com.baeldung.legacy.utilpackage; + +import java.text.ParseException; +import java.text.SimpleDateFormat; +import java.util.Date; + +public class DateUtils { + + public static Date getNow() { + return new Date(); + } + + public static Date getDate(long millis) { + return new Date(millis); + } + + public static Date getDate(String dateAsString, String pattern) throws ParseException { + return new SimpleDateFormat(pattern).parse(dateAsString); + } +} \ No newline at end of file diff --git a/core-java-modules/core-java-date-operations/src/test/java/com/baeldung/legacy/sqlpackage/DateUtilsUnitTest.java b/core-java-modules/core-java-date-operations/src/test/java/com/baeldung/legacy/sqlpackage/DateUtilsUnitTest.java new file mode 100644 index 0000000000..73eda5a9dd --- /dev/null +++ b/core-java-modules/core-java-date-operations/src/test/java/com/baeldung/legacy/sqlpackage/DateUtilsUnitTest.java @@ -0,0 +1,26 @@ +package com.baeldung.legacy.sqlpackage; + +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/legacy/sqlpackage/TimeUtilsUnitTest.java b/core-java-modules/core-java-date-operations/src/test/java/com/baeldung/legacy/sqlpackage/TimeUtilsUnitTest.java new file mode 100644 index 0000000000..9519122e92 --- /dev/null +++ b/core-java-modules/core-java-date-operations/src/test/java/com/baeldung/legacy/sqlpackage/TimeUtilsUnitTest.java @@ -0,0 +1,26 @@ +package com.baeldung.legacy.sqlpackage; + +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/legacy/sqlpackage/TimestampUtilsUnitTest.java b/core-java-modules/core-java-date-operations/src/test/java/com/baeldung/legacy/sqlpackage/TimestampUtilsUnitTest.java new file mode 100644 index 0000000000..d48560624d --- /dev/null +++ b/core-java-modules/core-java-date-operations/src/test/java/com/baeldung/legacy/sqlpackage/TimestampUtilsUnitTest.java @@ -0,0 +1,26 @@ +package com.baeldung.legacy.sqlpackage; + +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().getTime(), new Date().getTime()); + } + + @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 diff --git a/core-java-modules/core-java-date-operations/src/test/java/com/baeldung/legacy/utilpackage/CalendarUtilsUnitTest.java b/core-java-modules/core-java-date-operations/src/test/java/com/baeldung/legacy/utilpackage/CalendarUtilsUnitTest.java new file mode 100644 index 0000000000..db029153ee --- /dev/null +++ b/core-java-modules/core-java-date-operations/src/test/java/com/baeldung/legacy/utilpackage/CalendarUtilsUnitTest.java @@ -0,0 +1,18 @@ +package com.baeldung.legacy.utilpackage; + +import static org.junit.Assert.*; + +import org.junit.Test; + +import java.text.ParseException; +import java.util.Date; + +public class CalendarUtilsUnitTest { + + @Test + public void givenDateAndDaysToAdd_thenCalendarIsCorrectlyReturned() throws ParseException { + Date initialDate = DateUtils.getDate("2020/01/01", "yyyy/MM/dd"); + Date expectedDate= DateUtils.getDate("2020/01/11", "yyyy/MM/dd"); + assertEquals(expectedDate, CalendarUtils.getPlusDays(initialDate, 10).getTime()); + } +} \ No newline at end of file diff --git a/core-java-modules/core-java-date-operations/src/test/java/com/baeldung/legacy/utilpackage/DateUtilsUnitTest.java b/core-java-modules/core-java-date-operations/src/test/java/com/baeldung/legacy/utilpackage/DateUtilsUnitTest.java new file mode 100644 index 0000000000..432aa1ecfc --- /dev/null +++ b/core-java-modules/core-java-date-operations/src/test/java/com/baeldung/legacy/utilpackage/DateUtilsUnitTest.java @@ -0,0 +1,23 @@ +package com.baeldung.legacy.utilpackage; + +import static org.junit.Assert.*; + +import org.junit.Test; + +import java.text.ParseException; +import java.util.Date; + +public class DateUtilsUnitTest { + + @Test + public void givenTimeMillis_thenDateIsReturned() { + Date now = DateUtils.getNow(); + assertEquals(DateUtils.getDate(now.getTime()), now); + } + + @Test + public void givenDateAndPattern_thenDateIsCorrectlyReturned() throws ParseException { + long milliseconds = new Date(2020 - 1900, 0, 1).getTime(); + assertEquals(DateUtils.getDate(milliseconds), DateUtils.getDate("2020/01/01", "yyyy/MM/dd")); + } +} \ No newline at end of file diff --git a/core-java-modules/pom.xml b/core-java-modules/pom.xml index 68ece1c473..16ec19835a 100644 --- a/core-java-modules/pom.xml +++ b/core-java-modules/pom.xml @@ -19,6 +19,7 @@ core-java-lang-operators core-java-networking-2 core-java-security-manager + core-java-date-operations