我有一个html页面,其中包含输入类型=“时间”的表单。 默认情况下,此时间为12小时格式。
用户将选择时间并将其存储在MYSQL数据库中。 在我的数据库中,我创建了一个名为“bookingTime”字段的表,其数据类型为TIME。
我正在尝试编写java代码以将时间存储在数据库中。
问题是,当我在HTML页面上选择时间(例如03.30 PM)时,它在后端被接收为“1970-01-01T20:30:00.000Z”。
我无法解析此问题并将实际时间(即15:30:00)存储在MYSQL数据库中。
有人可以提供java代码吗?
答案 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