Formatting Java 8 LocalDateTime in JSON via Spring Boot
Maintaining a consistent and intuitive format for temporal data during serialization and deserialization is essential in modern application development. However, formatting Java 8 LocalDateTime objects in Spring Boot applications can often present challenges.
Problem:
When attempting to format LocalDateTime objects within Spring Boot applications, users may encounter a verbose output similar to the following:
"startDate" : { "year" : 2010, "month" : "JANUARY", "dayOfMonth" : 1, "dayOfWeek" : "FRIDAY", "dayOfYear" : 1, "monthValue" : 1, "hour" : 2, "minute" : 2, "second" : 0, "nano" : 0, "chronology" : { "id" : "ISO", "calendarType" : "iso8601" } }
Desired Outcome:
The goal is to format LocalDateTime objects into a more concise and readable format, such as:
"startDate": "2015-01-01"
Solution:
To achieve the desired formatting, users must first add the following dependency to their project:
compile("com.fasterxml.jackson.datatype:jackson-datatype-jsr310:2.4.0")
This dependency introduces a converter that automatically handles the transformation of LocalDateTime objects. Additionally, the following configuration must be added to the application.properties file:
spring.jackson.serialization.write_dates_as_timestamps=false
By setting this property to false, Spring will utilize the appropriate converter to format dates as strings instead of timestamps. If specific formatting is desired, annotations such as @JsonFormat and @DateTimeFormat can be used.
The above is the detailed content of How Can I Format Java 8 LocalDateTime Objects Concisely in JSON with Spring Boot?. For more information, please follow other related articles on the PHP Chinese website!