我使用的是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格式?
答案 0 :(得分:32)
要将日期格式化为yyyy-MM-dd
,您需要做三件事:
com.fasterxml.jackson.datatype:jackson-datatype-joda
上添加依赖项。从你目前得到的输出来看,我认为你可能已经有这种依赖。spring.jackson.serialization.write-dates-as-timestamps: false
添加到application.properties
文件,将Jackson配置为不将日期格式设置为时间戳。LocalDataTime
@JsonFormat(pattern="yyyy-MM-dd")
字段或getter方法
醇>
注意:您需要使用Spring Boot 1.2才能使用第2步。
答案 1 :(得分:0)
我唯一要做的是:
请注意,从客户作为字符串对象发送日期,格式为yyyy/MM/dd
在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;