簡體   English   中英

是否有通用代碼將日期格式(時間戳)更改為數字格式

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM