diff --git a/core-java-modules/core-java-datetime-conversion/src/main/java/com/baeldung/epochtolocaldate/EpochTimeToLocalDateConverter.java b/core-java-modules/core-java-datetime-conversion/src/main/java/com/baeldung/epochtolocaldate/EpochTimeToLocalDateConverter.java new file mode 100644 index 0000000000..8dd7c8d602 --- /dev/null +++ b/core-java-modules/core-java-datetime-conversion/src/main/java/com/baeldung/epochtolocaldate/EpochTimeToLocalDateConverter.java @@ -0,0 +1,29 @@ +package com.baeldung.epochtolocaldate; + +import java.time.Instant; +import java.time.LocalDate; +import java.time.ZoneId; +import java.time.format.DateTimeFormatter; + +/** + * Class which shows a way to convert Epoch time in milliseconds to java.time.LocalDate. + * + * @author quincy + * + */ + +public class EpochTimeToLocalDateConverter { + public static String main(String[] args) { + long epochTimeinMillisToConvert = 1624962431000L; + + Instant instant = Instant.ofEpochMilli(epochTimeinMillisToConvert); + + ZoneId zoneId = ZoneId.systemDefault(); // Use the system default time zone + LocalDate localDate = instant.atZone(zoneId).toLocalDate(); + + DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd"); + String formattedDate = localDate.format(formatter); + + return formattedDate; + } +} diff --git a/core-java-modules/core-java-datetime-conversion/src/main/java/com/baeldung/epochtolocaldate/EpochTimeToLocalDateTimeConverter.java b/core-java-modules/core-java-datetime-conversion/src/main/java/com/baeldung/epochtolocaldate/EpochTimeToLocalDateTimeConverter.java new file mode 100644 index 0000000000..ffac6e50e9 --- /dev/null +++ b/core-java-modules/core-java-datetime-conversion/src/main/java/com/baeldung/epochtolocaldate/EpochTimeToLocalDateTimeConverter.java @@ -0,0 +1,29 @@ +package com.baeldung.epochtolocaldate; + +import java.time.Instant; +import java.time.LocalDateTime; +import java.time.ZoneId; +import java.time.format.DateTimeFormatter; + +/** + * Class which shows a way to convert Epoch time in milliseconds to java.time.LocalDateTime. + * + * @author quincy + * + */ + +public class EpochTimeToLocalDateTimeConverter { + public static String main(String[] args) { + long epochTimeinMillisToConvert = 1624962431000L; + + Instant instant = Instant.ofEpochMilli(epochTimeinMillisToConvert); + + ZoneId zoneId = ZoneId.systemDefault(); // Use the system default time zone + LocalDateTime localDateTime = instant.atZone(zoneId).toLocalDateTime(); + + DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd"); + String formattedDate = localDateTime.format(formatter); + + return formattedDate; + } +} diff --git a/core-java-modules/core-java-datetime-conversion/src/test/java/com/baeldung/epochtolocaldate/EpochTimeToLocalDateConverterUnitTest.java b/core-java-modules/core-java-datetime-conversion/src/test/java/com/baeldung/epochtolocaldate/EpochTimeToLocalDateConverterUnitTest.java new file mode 100644 index 0000000000..9b8135de51 --- /dev/null +++ b/core-java-modules/core-java-datetime-conversion/src/test/java/com/baeldung/epochtolocaldate/EpochTimeToLocalDateConverterUnitTest.java @@ -0,0 +1,21 @@ +package com.baeldung.epochtolocaldate; + +import org.junit.jupiter.api.Test; +import java.time.Instant; +import java.time.LocalDate; +import java.time.ZoneId; +import static org.junit.jupiter.api.Assertions.assertEquals; + +public class EpochTimeToLocalDateConverterUnitTest { + @Test + public void testConvertEpochTimeToLocalDate() { + long epochTimeMillis = 1624962431000L; // Example epoch time in millisecond + LocalDate expectedDate = LocalDate.of(2021, 6, 29); + + Instant instant = Instant.ofEpochMilli(epochTimeMillis); + ZoneId zoneId = ZoneId.systemDefault(); + LocalDate actualDate = instant.atZone(zoneId).toLocalDate(); + + assertEquals(expectedDate, actualDate); + } +} diff --git a/core-java-modules/core-java-datetime-conversion/src/test/java/com/baeldung/epochtolocaldate/EpochTimeToLocalDateTimeConverterUnitTest.java b/core-java-modules/core-java-datetime-conversion/src/test/java/com/baeldung/epochtolocaldate/EpochTimeToLocalDateTimeConverterUnitTest.java new file mode 100644 index 0000000000..6e3b250938 --- /dev/null +++ b/core-java-modules/core-java-datetime-conversion/src/test/java/com/baeldung/epochtolocaldate/EpochTimeToLocalDateTimeConverterUnitTest.java @@ -0,0 +1,24 @@ +package com.baeldung.epochtolocaldate; + +import org.junit.jupiter.api.Test; +import java.time.Instant; +import java.time.LocalDateTime; +import java.time.ZoneId; +import java.time.format.DateTimeFormatter; +import static org.junit.jupiter.api.Assertions.assertEquals; + +public class EpochTimeToLocalDateTimeConverterUnitTest { + + @Test + public void testConvertEpochTimeToLocalDateTime() { + long epochTimeMillis = 1624962431000L; // Example epoch time in milliseconds + LocalDateTime expectedDateTime = LocalDateTime.of(2021, 6, 29, 12, 13, 51); + + Instant instant = Instant.ofEpochMilli(epochTimeMillis); + ZoneId zoneId = ZoneId.systemDefault(); + LocalDateTime actualDateTime = instant.atZone(zoneId).toLocalDateTime(); + + assertEquals(expectedDateTime, actualDateTime); + } + +}