我有以下 POJO,我用它作为消息发送到 rabbitmq:
public class MyMessage {
private String id;
private String name;
private Date createdDt;
@JsonCreator
public MyMessage(
@JsonProperty("id") String id,
@JsonProperty("name") String name,
@JsonProperty("createdDt") Date createdDt
) {
this.id = id;
this.name = name;
this.createdDt = createdDt;
}
}
问题在于,当我使用 rabbitTemplate.convertAndSend()
发送它时,createdDt
将在 JSON 消息中使用 unix 时间戳。我需要序列化后的 JSON 中的 createdDt
格式为 dd-MM-yyyy HH:mm:ss
。
我不想将 MyMessage
类中的 createdDt
属性更改为该格式化日期中的字符串,因为我可能想在代码并将日期作为字符串以后不方便。仅仅为了以特定格式使用日期而在字符串中使用日期听起来也不“正确”。
当我收到返回的消息时,我还需要将格式为 dd-MM-yyyy HH:mm:ss
的字符串日期反序列化为 Date
对象。
如何在序列化时以不同格式发送日期时将 createdDt
保留为 Date
对象,然后将字符串反序列化为日期对象?
最佳答案
如果您必须使用 java.util.Date
则只需将以下注释添加到 createdDt
字段
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "dd-MM-yyyy HH:mm:ss")
private Date createdDt;
关于java - 如何发送/接收日期对象以 JSON 格式而不是时间戳格式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58473893/