spring-boot中的json日期格式

Par*_*avi 14 java 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;
...
...
}
Run Code Online (Sandbox Code Playgroud)

当此类转换为JSON时,该字段将转换为以下字符串表示形式

{"start_date":[2014,11,15,0,0,0,0],...., ...}
Run Code Online (Sandbox Code Playgroud)

我想让json响应为yyyy-MM-dd.

我尝试了@DateTimeFormat(iso = ISO.DATE)注释,但也没有帮助.

是否有一种简单的方法可以将此转换为正确的json格式?

And*_*son 31

将日期格式化为以下三项内容yyyy-MM-dd:

  1. 添加依赖项com.fasterxml.jackson.datatype:jackson-datatype-joda.根据你目前得到的输出来判断,我认为你可能已经有了这种依赖性.
  2. 配置Jackson不要通过添加spring.jackson.serialization.write-dates-as-timestamps: false到您的application.properties文件来将日期格式化为时间戳.
  3. 使用注释LocalDataTime字段或getter方法@JsonFormat(pattern="yyyy-MM-dd")

注意:您需要使用Spring Boot 1.2才能使用第2步.


Adi*_*r D 10

没有额外的依赖- 我唯一要做的就是:

  1. 要注意以字符串对象的形式从客户端发送日期yyyy/MM/dd

  2. 在Spring Boot应用程序中,在日期字段上添加相同格式的注释


public class Foo
{
     @JsonFormat(pattern = "yyyy/MM/dd")
     private Date dueDate;
}
Run Code Online (Sandbox Code Playgroud)

使用Spring Boot 2.3.5版本


更新

另一种选择(代替步骤 2)修改 application.properties 文件,在其中添加任何 Date 对象的格式:

spring.jackson.date-format= yyyy/MM/dd