java - 如何发送/接收日期对象以 JSON 格式而不是时间戳格式?

标签 java json date serialization jackson

我有以下 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/

相关文章:

java - 使用 Hibernate 归档数据的最佳方法

json - Node : any library to clean json (say comments) when reading from file?

java - 如何在 Tab 布局中设置 Tab 宽度?

java - OrientDB - 数据库对象与当前线程不同步

javascript - Amazon Alexa Skill Lambda 代码无法执行

javascript - Json 编码 数组与仅转换为数组的对象的混合

PHP日期计算

postgresql - 识别 postgresql 中的无效日期

java - 日期验证android java

java - Scalatra 独立部署时找不到 View