首页 > 解决方案 > @DateTimeFormat(pattern = "yyyy-MM-dd hh:mm:ss") 不工作

问题描述

@UpdateTimestamp
@Temporal(TemporalType.TIMESTAMP)
@DateTimeFormat(pattern = "yyyy-MM-dd hh:mm:ss")
@Column(name = "modify_date")
private Date modifyDate;

当新记录保存在数据库中时,它会像这样保存 DateTime “2020-12-13 11:41:34.528000000”,但我希望它像这样保存“2020-12-13 11:41:34”

标签: javamysqlspring-boot

解决方案


这里有几个问题。首先,在您的数据库中,如果您将列定义为日期或时间戳,则您无法控制数据库内部如何存储它。您可以控制从 DB 读取它的客户端如何表示它。但这就是你所需要的。
第二,避免过时的类Date和使用java.time包。就您而言,您可能对课程感兴趣LocalDateTime或可能感兴趣ZonedDateTime
更改为适当的类后,更改注释

@DateTimeFormat(pattern = "yyyy-MM-dd hh:mm:ss")

@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss")

有关更多详细信息,请参阅此问题的答案


推荐阅读