Java @DateTimeFormat(模式=“yyyy-MM-dd hh:MM:ss”不起作用
当新记录保存在数据库中时,它会像这样保存日期时间“2020-12-13 11:41:34.528000000”,但我希望它像这样保存“2020-12-13 11:41:34”这里有几个问题。首先,在DB中,如果将列定义为日期或时间戳,则无法控制DB内部存储它的方式。您可以控制从DB读取它的客户端如何表示它。但这就是你所需要的。Java @DateTimeFormat(模式=“yyyy-MM-dd hh:MM:ss”不起作用,java,mysql,spring-boot,Java,Mysql,Spring Boot,当新记录保存在数据库中时,它会像这样保存日期时间“2020-12-13 11:41:34.528000000”,但我希望它像这样保存“2020-12-13 11:41:34”这里有几个问题。首先,在DB中,如果将列定义为日期或时间戳,则无法控制DB内部存储它的方式。您可以控制从DB读取它的客户端如何表示它。但这就是你所需要的。 第二,避免过时的类Date,使用java.time包。在您的情况下,您可能对LocalDateTime或ZonedDateTime类感兴趣。 更改为适当的类后,请更改注释
第二,避免过时的类
Date
,使用java.time
包。在您的情况下,您可能对LocalDateTime
或ZonedDateTime
类感兴趣。
更改为适当的类后,请更改注释
@UpdateTimestamp
@Temporal(TemporalType.TIMESTAMP)
@DateTimeFormat(pattern = "yyyy-MM-dd hh:mm:ss")
@Column(name = "modify_date")
private Date modifyDate;
到
有关更多详细信息,请参见的答案这里有几个问题。首先,在DB中,如果将列定义为日期或时间戳,则无法控制DB内部存储它的方式。您可以控制从DB读取它的客户端如何表示它。但这就是你所需要的。
第二,避免过时的类
Date
,使用java.time
包。在您的情况下,您可能对LocalDateTime
或ZonedDateTime
类感兴趣。
更改为适当的类后,请更改注释
@UpdateTimestamp
@Temporal(TemporalType.TIMESTAMP)
@DateTimeFormat(pattern = "yyyy-MM-dd hh:mm:ss")
@Column(name = "modify_date")
private Date modifyDate;
到
有关更多详细信息,请参见时间戳的答案是一种DB类型,本质上意味着“从纪元开始的毫秒”。使用实际表示所需内容的类型。例如,TemporalType.DATETIME)。查看是否可以避免使用
Date
。那门课设计得很糟糕,而且早已过时。取而代之的是考虑<代码>即时、时间戳
,日期
,以及其他糟糕的遗留日期时间类。当新记录保存在数据库中时,它会像这样保存日期时间“2020-12-13 11:41:34.528000000”…不,不会。它以我们不应该关心的内部格式保存。它在检索时显示该格式。您可以自由地将格式转换为用户想要的任何其他格式。这就是你应该做的。时间戳是一种DB类型,本质上意味着“从纪元开始的毫秒”。使用实际表示所需内容的类型。例如,TemporalType.DATETIME)。查看是否可以避免使用Date
。那门课设计得很糟糕,而且早已过时。取而代之的是考虑<代码>即时、时间戳
,日期
,以及其他糟糕的遗留日期时间类。当新记录保存在数据库中时,它会像这样保存日期时间“2020-12-13 11:41:34.528000000”…不,不会。它以我们不应该关心的内部格式保存。它在检索时显示该格式。您可以自由地将格式转换为用户想要的任何其他格式。这是你应该做的。
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss")