提问人:User 提问时间:6/6/2023 最后编辑:AnonymousUser 更新时间:8/7/2023 访问量:125
java.time.Instant 不会在消费者端呈现
java.time.Instant does not render on the consumer side
问:
我正在尝试使用 Kafka 发送一些信息。我有一个类来处理这个任务。该类包括一个名为“timestamp”的私有变量,类型为 Instant。生成时间戳后,它会正确呈现。但是,当我在消费者端收到消息时,时间戳不可读。
它看起来像这样"timestamp": 1685968244.889278400
此外,我还有一个响应类,定义如下:
public class Response<T> {
private T data;
private String statusCode;
private String statusMessage;
private Instant timestamp;
}
当我将 atribute 转换为 String 时,一切看起来都很好,但我想渲染时间戳如下:
我该怎么做?timestamp
"timestamp": 2023-06-05T15:07:06.497159Z
答:
2赞
Serdar
6/14/2023
#1
我怀疑来自即时类型。有一次,我遇到了同样的问题,当我用 Joda-Time 的 DateTime 替换 Instant 时,我解决了这个问题。另一种可能的解决方案是,如果您使用的是自定义序列化程序/反序列化程序,也可能发生这种情况。因此,基本上,您可以使用 JsonSerializer/JsonDeserializer。我希望这些信息对你有用
评论
0赞
User
6/15/2023
谢谢,那行得通。我想给你+1,但由于我的名声,我不能
0赞
Serdar
6/16/2023
不用担心。我很高兴对你有所帮助
0赞
Anonymous
8/4/2023
那是什么类型?来自Joda-Time???DateTime
评论
com.fasterxml.jackson.datatype:jackson-modules-java8
JsonDeserializer
org.springframework.kafka.support.serializer.JsonDeserializer
JsonDeserializer
JacksonUtils.enhancedObjectMapper()
registerWellKnownModulesIfAvailable(objectMapper);
com.fasterxml.jackson.datatype.jsr310.JavaTimeModule