反序列化日期时无法从String值构造java.util.Date的实例

我有一个像这样的POJO,其中我用@JsonFormat@JsonDeserialize注释了日期对象

@JsonFormat(pattern="yyyy-MM-dd HH:mm:ss")
@JsonDeserialize(using = DateHandler.class)
private Date mouacceptedTime;

尽管如此,通过其客户端调用API时,仍然出现以下错误。

Caused by: org.codehaus.jackson.map.JsonmappingException: Can not construct instance of java.util.Date from String value '2000-12-31 19:30:00': not a valid representation (error: Can not parse date "2000-12-31 19:30:00": not compatible with any of standard forms ("yyyy-MM-dd'T'HH:mm:ss.SSSZ","yyyy-MM-dd'T'HH:mm:ss.SSS'Z'","EEE,dd MMM yyyy HH:mm:ss zzz","yyyy-MM-dd"))
 at [Source: [B@7c1447b5; line: 1,column: 559] (through reference chain: client.base.response.OnboardingDetailsResponse["onboardingDetailsDTO"]->client.base.dto.OnboardingDetailsDTO["mouacceptedTime"])

这些是我可以找到的唯一两个可以解决此问题的解决方案,但它对我不起作用。还有其他方法可以反序列化日期。

我的dateHandler类看起来像这样

public class DateHandler extends JsonDeserializer {

    private static final Logger logger = LoggerFactory.getLogger(DateHandler.class);

    @Override
    public Object deserialize(JsonParser jsonParser,DeserializationContext deserializationContext) throws IOException,JsonProcessingException {
        String date = jsonParser.getText();
        try {
            SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
            return formatter.parse(date);
        }catch (Exception e){
            logger.info("Exception while fetching :" + e.toString());
        }
        return date;
    }
}
dukx95 回答:反序列化日期时无法从String值构造java.util.Date的实例

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/2977957.html

大家都在问