所以我有这个付款历史记录数据库,它的属性之一是时间戳类型(YYYY-MM-DD HH:MM:SS)中的时间。我需要填写表格以添加新的付款记录。我的控制器将自动捕获付款历史记录对象并将其添加到数据库中。但是由于我的HTML中的时间格式(我选择datetime-local)与DB中的时间格式不匹配,因此我无法继续添加新的付款历史记录。
这是我的错误:
Field error in object 'paymentHistoryModel' on field 'time': rejected value
[2019-02-03T15:02]; codes
[typeMismatch.paymentHistoryModel.time,typeMismatch.time,
typeMismatch.java.sql.Timestamp,typeMismatch]; arguments
[org.springframework.context.support.DefaultMessageSourceResolvable: codes
[paymentHistoryModel.time,time]; arguments []; default message [time]];
default message [Failed to convert property value of type 'java.lang.String' to
required type 'java.sql.Timestamp' for property 'time'; nested exception is
org.springframework.core.convert.ConversionFailedException: Failed to convert
from type [java.lang.String] to type [@javax.validation.constraints.NotNull
@javax.persistence.Column java.sql.Timestamp] for value '2019-02-03T15:02';
nested exception is java.lang.IllegalArgumentException: Timestamp format must
be yyyy-mm-dd hh:mm:ss[.fffffffff]]
是否可以在数据库中创建具有时间戳等精确格式的HTML输入?谢谢!!
答案 0 :(得分:1)
您可以使用java.text.SimpleDateFormat
更改日期时间格式。
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm"),
sdf2 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date parse = sdf.parse("2019-02-03T15:02".replace("T", " "));
String dateTime = sdf2.format(parse);
System.out.println(dateTime);
输出
2019-02-03 15:02:00