From f8b17712cfdd276eed457dfaee3e72db2b548cf6 Mon Sep 17 00:00:00 2001 From: Xiang Li Date: Tue, 5 May 2020 23:57:14 +0800 Subject: [PATCH] Add reverse functions to DateTimeUtil --- .../org/apache/iceberg/data/DateTimeUtil.java | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/data/src/main/java/org/apache/iceberg/data/DateTimeUtil.java b/data/src/main/java/org/apache/iceberg/data/DateTimeUtil.java index d6ab178a9523..7380b8cf1f35 100644 --- a/data/src/main/java/org/apache/iceberg/data/DateTimeUtil.java +++ b/data/src/main/java/org/apache/iceberg/data/DateTimeUtil.java @@ -38,15 +38,31 @@ public static LocalDate dateFromDays(int daysFromEpoch) { return ChronoUnit.DAYS.addTo(EPOCH_DAY, daysFromEpoch); } + public static int daysFromDate(LocalDate date) { + return (int) ChronoUnit.DAYS.between(EPOCH_DAY, date); + } + public static LocalTime timeFromMicros(long microFromMidnight) { return LocalTime.ofNanoOfDay(microFromMidnight * 1000); } + public static long microsFromTime(LocalTime time) { + return time.toNanoOfDay() / 1000; + } + public static LocalDateTime timestampFromMicros(long microsFromEpoch) { return ChronoUnit.MICROS.addTo(EPOCH, microsFromEpoch).toLocalDateTime(); } + public static long microsFromTimestamp(LocalDateTime dateTime) { + return ChronoUnit.MICROS.between(EPOCH, dateTime.atOffset(ZoneOffset.UTC)); + } + public static OffsetDateTime timestamptzFromMicros(long microsFromEpoch) { return ChronoUnit.MICROS.addTo(EPOCH, microsFromEpoch); } + + public static long microsFromTimestamptz(OffsetDateTime dateTime) { + return ChronoUnit.MICROS.between(EPOCH, dateTime); + } }