我正在使用spring boot来创建REST应用程序。我有一个如下所示的DTO:
public class Subject {
private String uid;
private String number;
private String initials;
private Date dateOfBirth;
我使用Spring-Hateos,我的控制器的重新类型是ResponseEntity<Resources<Resource<Subject>>>
。我需要将日期显示在&#34; yyyy-mm-dd&#34;格式。
答案 0 :(得分:65)
如果杰克逊与您的应用程序一起将您的bean序列化为JSON格式,那么您可以使用Jackson anotation @JsonFormat将日期格式化为指定的格式。
在您的情况下,如果您需要将日期转换为yyyy-MM-dd
格式,则需要在字段上方指定要应用此格式的@JsonFormat
。
例如:
public class Subject {
private String uid;
private String number;
private String initials;
@JsonFormat(pattern="yyyy-MM-dd")
private Date dateOfBirth;
//Other Code
}
来自文档:
用于配置属性值详细信息的注释 要被序列化。
希望这有帮助。
答案 1 :(得分:32)
你很可能意味着&#34; yyyy-MM-dd&#34;小后者&#39; m&#39;会暗示分钟节。
你应该做两件事
在spring.jackson.serialization.write-dates-as-timestamps:false
中添加application.properties
这将禁用将日期转换为时间戳,而是使用符合ISO-8601标准的格式
您可以通过使用dateOfBirth
@JsonFormat(pattern="yyyy-MM-dd")
属性的getter方法来自定义格式
答案 2 :(得分:7)
从Spring Boot版本1.2.0.RELEASE开始,您可以添加一个属性application.properties
,为所有类spring.jackson.date-format
设置默认日期格式。
对于您的日期格式示例,您可以将此行添加到您的属性文件中:
spring.jackson.date-format=yyyy-MM-dd
答案 3 :(得分:3)
如果要更改所有日期的格式,可以添加构建器自定义程序。以下是将日期转换为ISO 8601的bean的示例:
<color name="foreground_material_light">#fff</color>