猿问

无法从String转换为Timestamp;格式错误

尝试将日期对象从AngularJS传递到Java Spring后端时遇到以下错误:

无法从值[2018-06-12T22:00:00.000Z]从类型[java.lang.String]转换为类型[@ javax.persistence.Column java.sql.Timestamp]的方法;嵌套异常为java.lang.IllegalArgumentException:时间戳格式必须为yyyy-mm-dd hh:mm:ss [.fffffffff]

到目前为止,我尝试将date对象格式化为预期格式的字符串:

$filter('date')(date, "yyyy-MM-dd hh:mm:ss");

这会导致错误提示:

错误:[ngModel:datefmt]2018-06-13 12:00:00应该是日期

好像我需要传递一个日期对象,但是我找不到一种方法来影响AngularJS试图转换为的日期格式。


一只萌萌小番薯
浏览 679回答 2
2回答

慕婉清6462132

java.time.Instant使用旧类,您的后端服务已过时java.sql.Timestamp。那个班级被多年前取代java.time.Instant。如果您将后端更改为要使用的格式Instant,则可以毫无问题地传递一个字符串,例如2018-06-12T22:00:00.000Z。该字符串使用的是ISO 8601中定义的标准格式。这种格式是将日期时间值作为文本交换的理想方式。默认情况下,java.time类使用ISO 8601格式。因此,无需指定格式化模式。我知道Hibernate已更新为支持java.time类。我不了解JPA。(我也不使用。)
随时随地看视频慕课网APP

相关分类

Java
我要回答