You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
|
package com.glxp.api.config.serializer;
|
|
|
|
|
|
|
|
import cn.hutool.core.date.DatePattern;
|
|
|
|
import cn.hutool.core.date.LocalDateTimeUtil;
|
|
|
|
import cn.hutool.core.util.StrUtil;
|
|
|
|
import com.fasterxml.jackson.core.JsonParser;
|
|
|
|
import com.fasterxml.jackson.databind.DeserializationContext;
|
|
|
|
import com.fasterxml.jackson.databind.JsonDeserializer;
|
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
|
|
|
|
|
import java.io.IOException;
|
|
|
|
import java.time.LocalDateTime;
|
|
|
|
import java.time.format.DateTimeFormatter;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* 字符串转Long类型
|
|
|
|
*/
|
|
|
|
@Slf4j
|
|
|
|
public class LocalDateTimeJsonDeserializer extends JsonDeserializer<LocalDateTime> {
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public LocalDateTime deserialize(JsonParser p, DeserializationContext ctxt) throws IOException {
|
|
|
|
String value = p.getText();
|
|
|
|
try {
|
|
|
|
return StrUtil.isEmpty(value) ? null : LocalDateTimeUtil.parse(value, DateTimeFormatter.ofPattern(DatePattern.NORM_DATETIME_PATTERN));
|
|
|
|
} catch (Exception e) {
|
|
|
|
log.error("日期格式解析错误", e);
|
|
|
|
return null;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|