Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/65.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java @DateTimeFormat(模式=“yyyy-MM-dd hh:MM:ss”不起作用_Java_Mysql_Spring Boot - Fatal编程技术网

Java @DateTimeFormat(模式=“yyyy-MM-dd hh:MM:ss”不起作用

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类感兴趣。 更改为适当的类后,请更改注释

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

这里有几个问题。首先,在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中,如果将列定义为日期或时间戳,则无法控制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
。那门课设计得很糟糕,而且早已过时。取而代之的是考虑<代码>即时、 LoalDATeTime</C>或其他一些类。JPA和Hibernate都已被更新以支持JavaTimes类。您可以停止使用
时间戳
日期
,以及其他糟糕的遗留日期时间类。当新记录保存在数据库中时,它会像这样保存日期时间“2020-12-13 11:41:34.528000000”…不,不会。它以我们不应该关心的内部格式保存。它在检索时显示该格式。您可以自由地将格式转换为用户想要的任何其他格式。这就是你应该做的。时间戳是一种DB类型,本质上意味着“从纪元开始的毫秒”。使用实际表示所需内容的类型。例如,TemporalType.DATETIME)。查看是否可以避免使用
Date
。那门课设计得很糟糕,而且早已过时。取而代之的是考虑<代码>即时、 LoalDATeTime</C>或其他一些类。JPA和Hibernate都已被更新以支持JavaTimes类。您可以停止使用
时间戳
日期
,以及其他糟糕的遗留日期时间类。当新记录保存在数据库中时,它会像这样保存日期时间“2020-12-13 11:41:34.528000000”…不,不会。它以我们不应该关心的内部格式保存。它在检索时显示该格式。您可以自由地将格式转换为用户想要的任何其他格式。这是你应该做的。
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss")