У меня проблемы с сериализацией LocalDateTime с помощью приложения Spring, реализующего Graphql. Вскоре в приложении Output, если дата имеет 0 секунд и миллисекунд, она отображается в формате «yyyy-MM-dd'T'HH: mm», и я знаю по документации, что это функция LocalDateTime. Я хочу всегда показывать формат «yyyy-MM-dd'T'HH: mm: ss», поэтому я попытался реализовать и зарегистрировать пользовательский сериализатор, но я видел, что он не используется для сериализации, и на самом деле не было никаких изменить вывод.
Вот код сериализатора:
public class LocalDateTimeSerializer extends JsonSerializer<LocalDateTime> {
static final DateTimeFormatter DATE_FORMATTER = DateTimeFormatter.ISO_LOCAL_DATE_TIME;
@Override
public void serialize(LocalDateTime value, JsonGenerator gen, SerializerProvider provider)
throws IOException {
try {
String s = value.format(DATE_FORMATTER);
gen.writeString(s);
} catch (DateTimeParseException e) {
System.err.println(e);
gen.writeString("");
}
}}
Это то, что у меня в основном:
@Bean
public ObjectMapper objectMapper() {
ObjectMapper mapper = new ObjectMapper();
SimpleModule localDateModule = new SimpleModule();
localDateModule.addDeserializer(LocalDateTime.class,
new LocalDateTimeDeserializer());
localDateModule.addSerializer(LocalDateTime.class,
new LocalDateTimeSerializer());
mapper.registerModule(localDateModule);
return mapper;
}
Я даже пробовал использовать интерфейс ObjectMapperConfigurer безуспешно.
Не хватает какой-то конфигурации?