https://github.com/goodforgod/micronaut-jackson-datetime
⚙️ Micronaut configuration of Jackson DateTime module for java.time.*
https://github.com/goodforgod/micronaut-jackson-datetime
configuration datetime jackson jackson-module java micronaut
Last synced: 8 months ago
JSON representation
⚙️ Micronaut configuration of Jackson DateTime module for java.time.*
- Host: GitHub
- URL: https://github.com/goodforgod/micronaut-jackson-datetime
- Owner: GoodforGod
- License: apache-2.0
- Created: 2022-01-18T20:50:26.000Z (over 4 years ago)
- Default Branch: master
- Last Pushed: 2023-08-10T05:04:27.000Z (almost 3 years ago)
- Last Synced: 2025-03-30T07:01:49.212Z (about 1 year ago)
- Topics: configuration, datetime, jackson, jackson-module, java, micronaut
- Language: Java
- Homepage:
- Size: 129 KB
- Stars: 1
- Watchers: 2
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Micronaut Jackson Datetime
[](https://openjdk.org/projects/jdk/17/)
[](https://maven-badges.herokuapp.com/maven-central/io.goodforgod/micronaut-jackson-datetime)

[](https://sonarcloud.io/dashboard?id=GoodforGod_micronaut-jackson-datetime)
[](https://sonarcloud.io/dashboard?id=GoodforGod_micronaut-jackson-datetime)
[](https://sonarcloud.io/dashboard?id=GoodforGod_micronaut-jackson-datetime)
Library provides Micronaut [Jackson Datetime](https://github.com/GoodforGod/jackson-datetime-configuration) module integration and configuration.
You can read more about [module and its configuration here](https://github.com/GoodforGod/jackson-datetime-configuration).
## Dependency :rocket:
**Gradle**
```groovy
implementation "io.goodforgod:micronaut-jackson-datetime:3.0.0"
```
**Maven**
```xml
io.goodforgod
micronaut-jackson-datetime
3.0.0
```
## Configuration
You can read more about [module configuration in details here](https://github.com/GoodforGod/jackson-datetime-configuration#configuration), below is *application.yaml* configuration example:
```yaml
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](https://goodforgod.dev/posts/2/).
### Hints
For proper Date & Times serialization, you probably don't want to adjust ZoneOffset when deserializing and serializing as longs, then configure as follows:
```yaml
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
```
### Recommended Configuration
Below is minimal recommended configuration that will be working for most cases.
```yaml
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
```
## Micronaut Compatability
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.
## License
This project licensed under the Apache License 2.0 - see the [LICENSE](LICENSE) file for details.