使用弹簧启动的 json 输出中的日期格式

2022-09-01 04:06:07

我正在研究用于创建REST应用程序的弹簧启动。我有一个DTO,如下所示:

public class Subject {

private String uid;
private String number;
private String initials;
private Date dateOfBirth;

我使用Spring-Hateos,我的控制器的reurn类型是。我需要以“y-mm-dd”格式显示日期。ResponseEntity<Resources<Resource<Subject>>>


答案 1

如果您的应用程序具有 Jackson 整数以将 Bean 序列化为 JSON 格式,则可以使用 Jackson 注释@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  

}  

来自文档 :

用于配置如何序列化属性值的详细信息的批注。

更多参考文档

希望这有帮助。


答案 2

您最有可能的意思是“yyyy-MM-dd”后面的小“m”将意味着分钟部分。

你应该做两件事

  • 添加您的这将禁用将日期转换为时间戳,而是使用符合ISO-8601的格式spring.jackson.serialization.write-dates-as-timestamps:falseapplication.properties

  • 您可以通过注释属性的 getter 方法自定义格式dateOfBirth@JsonFormat(pattern="yyyy-MM-dd")