生产者以localDateTime格式发送,消费者以数组形式接收



我有以下情况:

我的生产者正在发送一个java对象,该对象包含一个本地日期时间格式的localdate字段:

private LocalDateTime dtEmissao;

作为localdatetime对象发送到producer

2023-04-05T08:42:41

然而,在我的下一个应用程序中,我在消费者中接收字符串消息作为整数数组!

"dtEmissao":[2023,4,5,8,39,36],

为什么要将LocalDateTime转换为整数数组?我怎么解决这个问题?我应该确定接收申请还是生产者申请?

这是我在接收应用程序上的对象映射器配置:

@Bean
public ObjectMapper getObjectMapper(){
ObjectMapper objectMapper = new ObjectMapper();
objectMapper.registerModule(new JavaTimeModule());
objectMapper.disable(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS);
objectMapper.setSerializationInclusion(JsonInclude.Include.NON_NULL);
// StdDateFormat is ISO8601 since jackson 2.9
objectMapper.setDateFormat(new StdDateFormat());
return objectMapper;
}

格式为year=2023,month=4,day=5…唯一"错"的是这是你的分和秒。

您可以参考Jacksondatetime模块文档了解如何修改。

如果你想保持一个格式化的日期,那么让你的POJO使用String代替,并解析你的LocalDateTime类型从你的序列化框架分开。

最新更新