Browse Source

Instant Convert 수정

pull/16/head
lkd9125(이경도) 10 months ago
parent
commit
cc20b63e81
  1. 24
      pav-server/src/main/java/com/palnet/biz/config/convert/InstantStringDeserializer.java
  2. 5
      pav-server/src/main/java/com/palnet/comn/utils/InstantUtils.java

24
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.core.JsonProcessingException;
import com.fasterxml.jackson.databind.DeserializationContext; import com.fasterxml.jackson.databind.DeserializationContext;
import com.fasterxml.jackson.databind.JsonDeserializer; import com.fasterxml.jackson.databind.JsonDeserializer;
import com.palnet.comn.utils.InstantUtils;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import java.io.IOException; import java.io.IOException;
@ -45,6 +46,14 @@ public class InstantStringDeserializer extends JsonDeserializer<Instant> {
LocalDate localDate = LocalDate.parse(dateString, formatter); LocalDate localDate = LocalDate.parse(dateString, formatter);
return localDate.atStartOfDay(ZoneId.of(ZONE)).toInstant(); return localDate.atStartOfDay(ZoneId.of(ZONE)).toInstant();
} else { } else {
boolean doubleCheck = isValidDouble(dateString);
if(doubleCheck){
return InstantUtils.fromDatetimeDouble(Double.parseDouble(dateString));
}
return Instant.parse(dateString); return Instant.parse(dateString);
} }
} catch (Exception e) { } catch (Exception e) {
@ -66,5 +75,20 @@ public class InstantStringDeserializer extends JsonDeserializer<Instant> {
} }
} }
public boolean isValidDouble(String dateString){
boolean result = false;
try{
Double.parseDouble(dateString);
result = true;
}catch (NumberFormatException e){
result = false;
}
return result;
}
} }

5
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(); 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 // string validate format
public static boolean isValidFormat(String dateString, String format) { public static boolean isValidFormat(String dateString, String format) {
SimpleDateFormat dateFormat = new SimpleDateFormat(format); SimpleDateFormat dateFormat = new SimpleDateFormat(format);

Loading…
Cancel
Save