![](/img/trans.png)
[英]Convert java.util.date format into another different java.util.date format
[英]Convert java.util.Date to json format
我必須將POJO轉換為JSON字符串才能發送到客戶端代碼。
但是,當我這樣做時,POJO java.util.Date
字段(值“ 2107-06-05 00:00:00.0
”)被翻譯為“ 1496592000000
”,我認為這是一個紀元以來。 我希望它在Json中更具可讀性,可能是“ DD / MM / YYYY”格式。
我在Spring Boot應用程序中使用RestEasy
控制器,該控制器處理Java對象到JSON的轉換。
任何線索出了什么問題?
RestEasy通過Jackson支持JSON,因此您可以通過多種方式處理Date
序列化。
如果要格式化特定字段,只需將@JsonFormat批注添加到POJO。
public class TestPojo {
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "dd-MM-yyyy")
public Date testDate;
}
如果要全局設置Date
序列化格式,則必須調整Jackson配置屬性。 例如, application.properties
文件格式。
第一個禁用WRITE_DATES_AS_TIMESTAMPS
序列化功能 :
spring.jackson.serialization.write-dates-as-timestamps=false
第二個定義日期格式:
spring.jackson.date-format=dd-MM-yyyy
或者,對於application.yml
文件格式:
spring:
jackson:
date-format: "dd-MM-yyyy"
serialization:
write_dates_as_timestamps: false
如果要完全控制序列化,則必須實現自定義StdSerializer 。
public class CustomDateSerializer extends StdSerializer<Date> {
private SimpleDateFormat formatter = new SimpleDateFormat("dd-MM-yyyy");
public CustomDateSerializer() {
this(null);
}
public CustomDateSerializer(Class t) {
super(t);
}
@Override
public void serialize(Date date, JsonGenerator generator, SerializerProvider provider)
throws IOException, JsonProcessingException {
generator.writeString(formatter.format(date));
}
}
然后將其與@JsonSerialize一起使用 :
public class TestPojo {
@JsonSerialize(using = CustomDateSerializer.class)
public Date testDate;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.