我有以下情况:
我的生产者正在发送一个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
类型从你的序列化框架分开。