public static ObjectMapper of() {
        if (MAPPER == null) {
            MAPPER = JacksonMapper.ofJson(false).copy();

            final SimpleModule module = new SimpleModule();
            module.addSerializer(Instant.class, new JsonSerializer<>() {
                @Override
                public void serialize(Instant instant, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException {
                    jsonGenerator.writeString(INSTANT_FORMATTER.format(instant));
                }
            });

            module.addSerializer(ZonedDateTime.class, new JsonSerializer<>() {
                @Override
                public void serialize(ZonedDateTime instant, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException {
                    jsonGenerator.writeString(ZONED_DATE_TIME_FORMATTER.format(instant));
                }
            });

            MAPPER.registerModule(module);
        }

        return MAPPER;
    }
@Test
    void zoneDateTimeMs() throws  JsonProcessingException {
        String serialize = JdbcMapper.of().writeValueAsString(MultipleConditionWindow.builder()
            .start(ZonedDateTime.parse("2013-09-08T16:19:12.001234+02:00"))
            .build()
        );

        assertThat(serialize, containsString("2013-09-08T16:19:12.001+02:00"));
    }