Пытается использовать API java.time в контроллерах отдыха Grails 3.1.x.Форматирование объектов java.time (jsr310) в Grails 3 JSON/rest-api
Мой объект домен "Отсутствие" имеет поле
LocalDate date
build.gradle содержит
compile "org.jadira.usertype:usertype.extended:5.0.0.GA"
как зависимость
и application.groovy содержит
grails.gorm.default.mapping = {
'user-type'(type: org.jadira.usertype.dateandtime.threeten.PersistentLocalDate, class: LocalDate)
'user-type'(type: org.jadira.usertype.dateandtime.threeten.PersistentLocalDateTime, class: LocalDateTime)
}
Это работает для сохранения объекта домена, поэтому сторона бэкэнда/db, похоже, работает должным образом.
Однако при сериализации объекта домена через RestController я не могу правильно форматировать способ, которым я хочу (т. Е. Yyyy-MM-dd). Выход
"date": {
"chronology": {
"calendarType": "iso8601",
"class": "java.time.chrono.IsoChronology",
"id": "ISO"
},
"class": "java.time.LocalDate",
"dayOfMonth": 19,
"dayOfWeek": {
"enumType": "java.time.DayOfWeek",
"name": "THURSDAY"
},
"dayOfYear": 140,
"era": {
"enumType": "java.time.chrono.IsoEra",
"name": "CE"
},
"leapYear": true,
"month": {
"enumType": "java.time.Month",
"name": "MAY"
},
"monthValue": 5,
"year": 2016
},
но то, что я действительно хочу
"date": "2016-05-19"
Я пытался найти решение в документации Grails, однако, даже после поиска ответа несколько раз я не могу похоже, это выясняет. Я нашел документацию по форматированию java.util.Date, однако это не то, что я хочу.
«Проблема» не очень важна с запросом GET, но для запросов POST и PUT это непрактично, поэтому мне нужно получить короткоформатный yyyy-MM-dd.
Кто-нибудь нашел решение этой проблемы?