如何在MySQL中存储时间

时间:2016-01-06 19:15:25

标签: java mysql html5 date time

我有一个html页面,其中包含输入类型=“时间”的表单。 默认情况下,此时间为12小时格式。

用户将选择时间并将其存储在MYSQL数据库中。 在我的数据库中,我创建了一个名为“bookingTime”字段的表,其数据类型为TIME。

我正在尝试编写java代码以将时间存储在数据库中。

问题是,当我在HTML页面上选择时间(例如03.30 PM)时,它在后端被接收为“1970-01-01T20:30:00.000Z”。

我无法解析此问题并将实际时间(即15:30:00)存储在MYSQL数据库中。

有人可以提供java代码吗?

2 个答案:

答案 0 :(得分:0)

您可以使用日历变量,这样您就可以创建新日历并设置时间。

之后,使用PreparedStatement将时间设置为String,使用SimpleDateFormat(“HH:mm:ss”)

Calendar myCalendar = Calendar.getInstance();
myCalendar.set(Calendar.HOUR, hour);
myCalendar.set(Calendar.MINUTE, minute);
myCalendar.set(Calendar.SECOND, second);

SimpleDateFormat sdf =  new SimpleDateFormat("HH:mm:ss" );
String time = sdf.format(  myCalendar.getTime() );   

...    
ps.setString("myTimeField", time);

答案 1 :(得分:0)

我在这里使用您的String" 1970-01-01T20:30:00.000Z",但它应该替换为您在该表单中的预期内容

DateFormat formatFromHtml =  new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'");
DateFormat formatterToMySQL =  new SimpleDateFormat("H:mm:ss");
Date result = formatFromHtml.parse("1970-01-01T20:30:00.000Z");
String validForTimeInMysql = formatterToMySQL.format(result);

之后,在validForTimeInMysql中,您将获得一个可以添加到MySQL的String