1
zj
2024-06-13 4680141b47cf95358b7edfb4000564ba0e973612
1
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
package com.yami.trading.util.json;
 
import cn.hutool.core.date.format.FastDateFormat;
import com.fasterxml.jackson.core.JsonGenerator;
import com.fasterxml.jackson.databind.JsonSerializer;
import com.fasterxml.jackson.databind.SerializerProvider;
import com.yami.trading.common.util.DateTimeTools;
import com.yami.trading.common.util.TimeZoneContext;
import com.yami.trading.util.DatePatternConstant;
 
import java.io.IOException;
import java.time.ZoneId;
import java.util.Date;
 
public class DateJsonSerializer extends JsonSerializer<Date> {
 
    private static final FastDateFormat DATE_FORMAT = FastDateFormat.getInstance(DatePatternConstant.DEFALUT_SERIALIZE_DATE_PATTERN);
 
    @Override
    public void serialize(Date date, JsonGenerator jsonGenerator, SerializerProvider serializerProvider)
            throws IOException {
        String outPutTimeZoneId = TimeZoneContext.showTimeZoneId.get();
        Date retDate = DateTimeTools.convertZoneTime(date, ZoneId.of(outPutTimeZoneId));
 
        jsonGenerator.writeString(date != null ? DATE_FORMAT.format(retDate) : "null");
    }
}