From cc20b63e81cb76e35fda719f0bd9c12dea155696 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?lkd9125=28=EC=9D=B4=EA=B2=BD=EB=8F=84=29?= Date: Thu, 23 Nov 2023 17:46:06 +0900 Subject: [PATCH] =?UTF-8?q?Instant=20Convert=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../convert/InstantStringDeserializer.java | 24 +++++++++++++++++++ .../com/palnet/comn/utils/InstantUtils.java | 5 ++++ 2 files changed, 29 insertions(+) diff --git a/pav-server/src/main/java/com/palnet/biz/config/convert/InstantStringDeserializer.java b/pav-server/src/main/java/com/palnet/biz/config/convert/InstantStringDeserializer.java index c42560a9..e47e3d58 100644 --- a/pav-server/src/main/java/com/palnet/biz/config/convert/InstantStringDeserializer.java +++ b/pav-server/src/main/java/com/palnet/biz/config/convert/InstantStringDeserializer.java @@ -4,6 +4,7 @@ import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.DeserializationContext; import com.fasterxml.jackson.databind.JsonDeserializer; +import com.palnet.comn.utils.InstantUtils; import lombok.extern.slf4j.Slf4j; import java.io.IOException; @@ -45,6 +46,14 @@ public class InstantStringDeserializer extends JsonDeserializer { LocalDate localDate = LocalDate.parse(dateString, formatter); return localDate.atStartOfDay(ZoneId.of(ZONE)).toInstant(); } else { + + boolean doubleCheck = isValidDouble(dateString); + + if(doubleCheck){ + + return InstantUtils.fromDatetimeDouble(Double.parseDouble(dateString)); + } + return Instant.parse(dateString); } } catch (Exception e) { @@ -66,5 +75,20 @@ public class InstantStringDeserializer extends JsonDeserializer { } } + public boolean isValidDouble(String dateString){ + + boolean result = false; + + try{ + Double.parseDouble(dateString); + + result = true; + }catch (NumberFormatException e){ + result = false; + } + + return result; + } + } diff --git a/pav-server/src/main/java/com/palnet/comn/utils/InstantUtils.java b/pav-server/src/main/java/com/palnet/comn/utils/InstantUtils.java index 43b3e22b..beac60f9 100644 --- a/pav-server/src/main/java/com/palnet/comn/utils/InstantUtils.java +++ b/pav-server/src/main/java/com/palnet/comn/utils/InstantUtils.java @@ -94,6 +94,11 @@ public class InstantUtils { return localDate.atStartOfDay(ZoneId.of(zone)).toInstant(); } + public static Instant fromDatetimeDouble (double dateDouble){ + + return Instant.ofEpochSecond((long) dateDouble, (long) ((dateDouble % 1) * 1_000_000_000)); + } + // string validate format public static boolean isValidFormat(String dateString, String format) { SimpleDateFormat dateFormat = new SimpleDateFormat(format);