为什么@JSONFormat无法在Spring Boot应用程序中正确设置日期时间格式?

时间:2019-01-25 04:31:26

标签: spring-boot java-8 datetime-format

我有一个Spring Boot API,在其中发送了JSON请求日期字段,但在应用程序代码中却未正确格式化,因此由于绑定问题,数据库调用失败了

此字段以JSON请求发送:-

 "created_at": "2014-08-12 11:48:41.000000"


@JsonFormat(shape=JsonFormat.Shape.STRING, pattern="yyyy-MM-dd HH:mm:ss.SSSSSS", timezone="AEST")
private Date createdAt;

调用getCreatedAt()方法时,日期的格式将为-美国东部时间2014年8月12日星期二07:48:41

但是我希望它的格式与发送方式相同

3 个答案:

答案 0 :(得分:0)

cls.kind == config['kind']批注用于指定将用于序列化属性的格式,并且似乎做得正确。当您调用__subclasses__时,您将得到一个@JsonFormat对象,这取决于您如何设置其格式。

答案 1 :(得分:0)

首先添加@JsonSerialize(as = Date.class)批注,然后执行JsonFormat

@JsonSerialize(as = Date.class)
@JsonFormat(shape=JsonFormat.Shape.STRING, pattern="yyyy-MM-dd HH:mm:ss.SSSSSS", timezone="AEST")
private Date createdAt;

答案 2 :(得分:0)

您可以像这样使用 LocalDateTime:

@JsonFormat(shape= JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss.SSSSSS")
@JsonProperty("create_time")
LocalDateTime createTime;