我尝试在DTO中全局格式化“即时”字段,因为我可以如下所示格式化其他日期字段:
@Configuration
public class AppConfig {
private static final String DATE_TIME_FORMAT = "dd.MM.yyyy HH:mm:ss";
@Bean
public Jackson2ObjectMapperBuilderCustomizer jsonCustomizer() {
return builder -> {
builder.serializers(new LocalDateTimeSerializer(
DateTimeFormatter.ofPattern(DATE_TIME_FORMAT)));
};
}
}
但是,我认为应该按照另一种方法创建新的bean,如下所示:
@Bean
ObjectMapper objectMapper() {
ObjectMapper mapper = new ObjectMapper();
mapper.configOverride(Instant.class)
.setFormat(JsonFormat.Value.forPattern(DATE_TIME_FORMAT));
return mapper;
}
它改变了我的即时值,但不是正确的格式:
"createdAt": {
"nano": 0,
"epochSecond": 1677445697
}
那么,如何在我的Sping Boot 应用程序中正确管理它呢?
1条答案
按热度按时间ccrfmcuu1#
在此thread下,已针对类似情况回答了此问题。
但是,由于OP无法找到适当的修改,使其适用于他的情况,这里是解决方案,将在这里工作
正如注解中所述,这似乎不是最佳使用方式,因为转换为字符串时,您将不得不假设即时对象中不包含时区。
然后你还需要