diff --git a/protobuffer/src/main/java/com/baeldung/protobuftimestamptolocaldate/TimestampInstance.java b/protobuffer/src/main/java/com/baeldung/protobuftimestamptolocaldate/TimestampInstance.java new file mode 100644 index 0000000000..0544c698f3 --- /dev/null +++ b/protobuffer/src/main/java/com/baeldung/protobuftimestamptolocaldate/TimestampInstance.java @@ -0,0 +1,21 @@ +package com.baeldung.protobuftimestamptolocaldate; + +import com.google.protobuf.Timestamp; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.time.Instant; + +public class TimestampInstance { + + private static final Logger logger = LoggerFactory.getLogger(TimestampInstance.class); + + public static void main(String[] args) { + Instant currentTimestamp = Instant.now(); + Timestamp timestamp = Timestamp.newBuilder() + .setSeconds(currentTimestamp.getEpochSecond()) + .setNanos(currentTimestamp.getNano()) + .build(); + logger.info(timestamp.toString()); + } +} diff --git a/protobuffer/src/main/java/com/baeldung/protobuftimestamptolocaldate/TimestampToLocalDate.java b/protobuffer/src/main/java/com/baeldung/protobuftimestamptolocaldate/TimestampToLocalDate.java new file mode 100644 index 0000000000..97caf8ad64 --- /dev/null +++ b/protobuffer/src/main/java/com/baeldung/protobuftimestamptolocaldate/TimestampToLocalDate.java @@ -0,0 +1,19 @@ +package com.baeldung.protobuftimestamptolocaldate; + +import com.google.protobuf.Timestamp; + +import java.time.Instant; +import java.time.LocalDate; +import java.time.ZoneId; + +public class TimestampToLocalDate { + + public static LocalDate convertToLocalDate(Timestamp timestamp) { + Instant instant = Instant.ofEpochSecond(timestamp.getSeconds(), timestamp.getNanos()); + LocalDate time = instant.atZone(ZoneId.of("America/Montreal")) + .toLocalDate(); + return time; + + } + +} diff --git a/protobuffer/src/test/java/com/baeldung/protobuftimestamptolocaldate/TimestampToLocalDateUnitTest.java b/protobuffer/src/test/java/com/baeldung/protobuftimestamptolocaldate/TimestampToLocalDateUnitTest.java new file mode 100644 index 0000000000..bde8a98ac9 --- /dev/null +++ b/protobuffer/src/test/java/com/baeldung/protobuftimestamptolocaldate/TimestampToLocalDateUnitTest.java @@ -0,0 +1,22 @@ +package com.baeldung.protobuftimestamptolocaldate; + +import com.google.protobuf.Timestamp; +import org.junit.Test; + +import java.time.LocalDate; + +import static org.junit.Assert.assertEquals; + +public class TimestampToLocalDateUnitTest { + + @Test + public void givenTimestamp_whenConvertedToLocalDate_thenSuccess() { + Timestamp timestamp = Timestamp.newBuilder() + .setSeconds(1000000000) + .setNanos(778866000) + .build(); + LocalDate time = TimestampToLocalDate.convertToLocalDate(timestamp); + assertEquals(LocalDate.of(2001, 9, 8), time); + } + +} \ No newline at end of file