Json формат даты в spring -boot

Я использую spring -boot, и у меня есть класс сущности, определенный как-то вроде

import org.joda.time.LocalDateTime;
@Entity
public class Project {

    @Type(type = "org.jadira.usertype.dateandtime.joda.PersistentLocalDateTime")
    private LocalDateTime start_date;
...
...
}

Когда этот класс преобразуется в JSON, поле преобразуется в следующее строковое представление

{"start_date":[2014,11,15,0,0,0,0],...., ...}

Я хочу, чтобы ответ json был как yyyy-MM-dd.

Я попробовал аннотацию @DateTimeFormat(iso = ISO.DATE), и это тоже не помогло.

Есть ли простой способ сделать это преобразование в правильный формат json?

Ответ 1

Чтобы отформатировать дату как yyyy-MM-dd, вам нужно сделать три вещи:

  • Добавить зависимость от com.fasterxml.jackson.datatype:jackson-datatype-joda. Судя по выводам, которые вы получаете в данный момент, я думаю, что у вас может быть эта зависимость.
  • Настройте Jackson, чтобы не форматировать даты как временные метки, добавив spring.jackson.serialization.write-dates-as-timestamps: false в ваш файл application.properties.
  • Аннотировать поле LocalDataTime или метод getter с помощью @JsonFormat(pattern="yyyy-MM-dd")

Примечание. Вам нужно будет использовать Spring Boot 1.2 для выполнения шага 2.