如何在HTML中创建数据库时间戳输入

时间:2018-11-21 12:44:55

标签: java html database input

所以我有这个付款历史记录数据库,它的属性之一是时间戳类型(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输入?谢谢!!

1 个答案:

答案 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

详细了解Date and Time Patterns