123456789101112131415161718192021222324252627282930313233343536 |
- package com.gqy.common.config;
- import com.fasterxml.jackson.core.JsonParser;
- 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 CustomDateDeserializer extends JsonDeserializer<Date> {
- private static final String[] DATE_FORMATS = {
- "yyyy-MM-dd'T'HH:mm:ss.SSSXXX",
- "yyyy-MM-dd'T'HH:mm:ss.SSS+08:00",
- "yyyy-MM-dd HH:mm:ss"
- };
- public Date deserialize(JsonParser p, DeserializationContext ctxt) throws IOException {
- String dateStr = p.getText();
- for (String format : DATE_FORMATS) {
- try {
- SimpleDateFormat dateFormat = new SimpleDateFormat(format);
- return dateFormat.parse(dateStr);
- } catch (ParseException ignored) {
- ignored.printStackTrace();
- // Try next format
- }
- }
- throw new IOException("Unable to parse date '" + dateStr + "' with any of the supported formats");
- }
- }
|