[英]Is there a common code to change the date format(timestamp) to Number format
我正在使用 SpringBoot 2.2。 日期格式是"validFrom": "2013-12-31T18:30:00.000+0000"但我想要數字格式(如1411471800000 )。 在我的實體中,我包含了以下以數字格式工作的代碼片段。
@JsonProperty("updDate")
**@JsonFormat(shape = JsonFormat.Shape.NUMBER)**
private Date updDate;
為了實現這一點,我將不得不在我的所有實體中做。有沒有一種方法可以讓我進行一次更改,它將適用於所有日期格式。
請指教
您可以將自定義序列化器用於Date
類型,它將用於序列化Date
類型。
public class DateSerializer extends StdSerializer<Date> {
private static final long serialVersionUID = -7880057299936791237L;
public JacksonLocalDateSerializer() {
this(null);
}
public JacksonLocalDateSerializer(Class<Date> type) {
super(type);
}
@Override
public void serialize(Date value, JsonGenerator jsonGenerator,
SerializerProvider serializerProvider) throws IOException, JsonProcessingException {
jsonGenerator.writeNumber(value.getTime());
}
}
並將其添加到 object 映射器中,以便Date
類型 object 始終使用您的自定義序列化程序進行序列化
@Configuration
public class JacksonConfig {
@Bean
@Primary
public ObjectMapper configureObjectMapper() {
ObjectMapper objectMapper = new ObjectMapper();
JavaTimeModule javaTimeModule = new JavaTimeModule();
javaTimeModule.addSerializer(Date.class, new DateSerializer());
objectMapper.registerModule(javaTimeModule);
return objectMapper;
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.