spring-boot中的json日期格式

时间:2014-12-17 00:34:02

标签: 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;
...
...
}

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

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

我希望将json响应设为yyyy-MM-dd

我尝试了@DateTimeFormat(iso = ISO.DATE)注释,这也无济于事。

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

3 个答案:

答案 0 :(得分:32)

要将日期格式化为yyyy-MM-dd,您需要做三件事:

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

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

答案 1 :(得分:0)

我唯一要做的是:

  1. 请注意,从客户作为字符串对象发送日期,格式为yyyy/MM/dd

  2. 在Spring Boot应用程序中,使用 相同的格式


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

使用Spring Boot 2.3.5版本


更新

另一个选项,而不是步骤2,要修改application.properties文件,请在此处添加任何Date对象的格式:

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

答案 2 :(得分:0)

您可以在不使用任何依赖项的情况下使用 @JsonFormat 注释和所需的模式:

@JsonFormat(pattern="yyyy-MM-dd")
private Date created_At;