
io.lsn.java.common.json.serializer.CustomTimestampDeserializer Maven / Gradle / Ivy
package io.lsn.java.common.json.serializer;
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 java.io.IOException;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class CustomTimestampDeserializer extends JsonDeserializer {
@Override
public Date deserialize(JsonParser jsonparser,
DeserializationContext deserializationcontext) throws IOException, JsonProcessingException {
if (jsonparser.getText() == null || "".equals(jsonparser.getText().trim())) {
return null;
}
String dateFormat = "yyyy-MM-dd";
String date = jsonparser.getText().replace(" ", "T");
if (jsonparser.getText().length() == 19) {
dateFormat = "yyyy-MM-dd'T'HH:mm:ss";
} else if (jsonparser.getText().length() == 16) {
dateFormat = "yyyy-MM-dd'T'HH:mm";
} else if (jsonparser.getText().length() > 16 && jsonparser.getText().length() != 19) {
dateFormat = "yyyy-MM-dd'T'HH:mm";
date = jsonparser.getText().substring(0, 16).replace(" ", "T");
}
SimpleDateFormat format = new SimpleDateFormat(dateFormat);
try {
return format.parse(date);
} catch (ParseException e) {
throw new RuntimeException(e);
}
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy