我正在尝试从Spring应用程序输出OffsetDateTime,并在我的application.properties中有这些属性:
spring.jackson.serialization.WRITE_DATES_AS_TIMESTAMPS=false spring.jackson.date-format=yyyy-MM-dd'T'HH:mm
但是,当返回日期时,它的格式为
"2017-01-30T16:55:00Z"
我应该如何在Spring应用程序中正确配置日期格式?
所以我设法找到了解决方案,但如果您有其他选择请发布.
我最终创建了一个新的主ObjectMapper
bean,并注册了一个带有自定义序列化程序的新模块OffsetDateTime
.我可以在这里设置我自己的日期格式,使用java.time.format.DateTimeFormatter
.我还必须在JavaTimeModule
我的映射器中注册.
@Configuration public class JacksonOffsetDateTimeMapper{ @Primary @Bean public ObjectMapper objectMapper() { ObjectMapper objectMapper = new ObjectMapper(); objectMapper.registerModule(new JavaTimeModule()); SimpleModule simpleModule = new SimpleModule(); simpleModule.addSerializer(OffsetDateTime.class, new JsonSerializer() { @Override public void serialize(OffsetDateTime offsetDateTime, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException, JsonProcessingException { jsonGenerator.writeString(DateTimeFormatter.ISO_LOCAL_DATE_TIME.format(offsetDateTime)); } }); objectMapper.registerModule(simpleModule); return objectMapper; } }