PersistentLocalDateTimeAsString导致DateTimeParseException

时间:2014-12-30 07:28:13

标签: spring hibernate java-8 mariadb

在使用jadira-usertype org.jadira.usertype.dateandtime.threeten.PersistentLocalDateTimeAsString作为Type时的hibernate模型中,转换是不可逆的。

@Column(name="requested_start")
@Type(type="org.jadira.usertype.dateandtime.threeten.PersistentLocalDateTimeAsString")
private LocalDateTime requestedStartDate;

使用以下格式创建具有日期时间的对象时;

myObject.setRequestedStartDate(LocalDateTime.parse("2014-12-28T19:30:00"));

作为“2014-12-28T19:30”存储在DB(MariaDB)中,忽略秒部分(不知道为什么)。

查询数据时,我收到以下异常

java.time.format.DateTimeParseException: Text '2014-12-28T19:30' could not be parsed at index 16

但是,如果我将日期设置为“2014-12-28T19:30:01”并将秒设置为“01”,则表示正常。

我也试过设置springframework的DateTimeFormat,仍然面临同样的异常。

@Column(name="requested_start")
@Type(type="org.jadira.usertype.dateandtime.threeten.PersistentLocalDateTimeAsString")
@DateTimeFormat(pattern="yyyy-MM-dd'T'HH:mm:ss")
private LocalDateTime requestedStartDate;

1 个答案:

答案 0 :(得分:0)

您可以尝试这种修改过的模式" yyyy-MM-dd' HH:mm [:ss]"。

方括号的含义表示解析过程中的可选部分 - 请参阅javadoc