Library provides Micronaut Jackson Datetime module integration and configuration.
You can read more about module and its configuration here.
Gradle
implementation "io.goodforgod:micronaut-jackson-datetime:3.0.0"
Maven
<dependency>
<groupId>io.goodforgod</groupId>
<artifactId>micronaut-jackson-datetime</artifactId>
<version>3.0.0</version>
</dependency>
You can read more about module configuration in details here, below is application.yaml configuration example:
jackson:
datetime:
enabled: true # Enable DateTime module registration (default true)
module:
offset-time-format: HH:mm:ss[.SSS]XXX # Set OffsetTime formatter (<- default value)
offset-date-time-format: uuuu-MM-dd'T'HH:mm:ss[.SSS]XXX # Set OffsetDateTime formatter (<- default value)
zoned-date-time-format: uuuu-MM-dd'T'HH:mm:ss[.SSS]XXX['['VV']'] # Set ZonedDateTime formatter (<- default value)
local-date-time-format: uuuu-MM-dd'T'HH:mm:ss[.SSS] # Set LocalDateTime formatter (<- default value)
local-date-format: uuuu-MM-dd # Set LocalDate formatter (<- default value)
local-time-format: HH:mm:ss[.SSS]XXX # Set LocalTime formatter (<- default value)
year-format: uuuu # Set Year formatter (<- default value)
year-month-format: uuuu-MM # Set YearMonth formatter (<- default value)
month-day-format: MM-dd # Set MonthDay formatter (<- default value)
force-resolver-strict: true # Forces ResolverStyle#STRICT for all formatters (default - false)
force-iso-chronology: true # Forces IsoChronology for all formatters (default - false)
If you want know more about Java Date & Time you can read article here.
For proper Date & Times serialization, you probably don't want to adjust ZoneOffset when deserializing and serializing as longs, then configure as follows:
jackson:
serialization:
write-dates-as-timestamps: false # Don't write dates as longs
deserialization:
adjust-dates-to-context-time-zone: false # Don't change ZoneOffset to local
Below is minimal recommended configuration that will be working for most cases.
jackson:
serialization:
write-dates-as-timestamps: false # Don't write dates as longs
deserialization:
adjust-dates-to-context-time-zone: false # Don't change ZoneOffset to local
datetime:
enabled: true # Enables date time module registration
Starting from version 3.0.0 library ships for Micronaut 4 & Java 17 is required.
Starting from version 2.0.0 library ships for Micronaut 3 & Java 1.8+ is required.
This project licensed under the Apache License 2.0 - see the LICENSE file for details.