MyLocalDateSerializer.java 919 Bytes
Newer Older
liqin's avatar
liqin committed
1
package cn.chnmuseum.party.common.util;
liqin's avatar
liqin committed
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31

import com.alibaba.fastjson.serializer.JSONSerializer;
import com.alibaba.fastjson.serializer.ObjectSerializer;

import java.lang.reflect.Type;
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;

public class MyLocalDateSerializer implements ObjectSerializer {

    private final String pattern;

    public MyLocalDateSerializer(String pattern) {
        this.pattern = pattern;
    }

    @Override
    public void write(JSONSerializer jsonSerializer, Object object, Object fieldName, Type fieldType, int i) {
        if (object == null) {
            jsonSerializer.out.writeNull();
            return;
        }
        if (object instanceof LocalDate) {
            LocalDate localDate = (LocalDate) object;
            String format = localDate.format(DateTimeFormatter.ofPattern(pattern));
            jsonSerializer.write(format);
        }
    }

}