【发布时间】:2019-04-01 07:16:18
【问题描述】:
我有一个 HTML 表单,其中有一个日期和时间选择器。我要做的是通过 servlet 中的request.getParameter 获取日期和时间,然后将其插入到我的数据库中。如何以日期和时间格式获取该日期和时间,或者将它们作为字符串获取然后解析它们。
代码:
String[] quantity = request.getParameterValues("Quantity_field");
java.util.Date selectedDate = new SimpleDateFormat("yyyy-MM-dd").parse(request.getParameter("deliveryDate")); //using this one i am trying to get date but it is showing error
java.util.Date selectedTime = new SimpleDateFormat("hh:mm:ss").parse(request.getParameter("deliveryTime"));
System.out.println(selectedDate);
java.util.Date dateUtil = new Date();
java.sql.Date dateSql = new java.sql.Date(dateUtil.getTime());
java.sql.Timestamp timestamp = new Timestamp(dateUtil.getTime());
try {
con = DBConnection.createConnection();
statement = con.createStatement();
String query = " insert query VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?)";
PreparedStatement ps = con.prepareStatement(query);
for (int i = 0; i < quantity.length; i++) {
if (Double.parseDouble(quantity[i]) != 0) {
if(recorderNo!=0)
{
ps.setInt(1, recorderNo);
}
else
{
ps.setInt(1, 1);
}
ps.setDate(2, dateSql);
ps.setString(3, 77);
ps.setDouble(4, 55);
ps.setInt(5, 0);
ps.setInt(6, 0);
ps.setDouble(7, Double.parseDouble(quantity[i]));
ps.setInt(8, 0);
ps.setInt(9, 0);
ps.setInt(10, 0);
ps.setString(11, outlet);
ps.setTimestamp(12, timestamp);
ps.setDate(13,selectedDate); // here i am trying to put date
ps.setTime(14,selectedTime);// and here time
ps.addBatch();
}
}
ps.executeBatch();
我在 Google 上找到了这个来获取日期和时间,但它在以下位置抛出错误:
ps.setDate(13,selectedDate);
ps.setTime(14,selectedTime);
错误是:
PreparedStatement 类型中的方法 setDate(int, java.sql.Date) 不适用于参数 (int, java.util.Date)
编辑
我就是这样的
java.util.Date selectedDate = new SimpleDateFormat("yyyy-MM-dd").parse(request.getParameter("deliveryDate"));
java.util.Date selectedTime = new SimpleDateFormat("hh:mm:ss").parse(request.getParameter("deliveryTime"));
java.sql.Date dateSelected = new java.sql.Date(selectedDate.getTime());
java.sql.Time dateTime=new Time(selectedTime.getTime());
但以上几行抛出错误,我认为我遗漏了一些东西或写错了一些东西
【问题讨论】:
-
把
java.util.Date改成java.util.Date请参考Type mismatch: cannot convert from java.util.Date to java.sql.Date -
将您的日期转换为
java.sql.Date,就像您对java.sql.Date dateSql = new java.sql.Date(dateUtil.getTime())所做的那样。 -
@Arnaud 我已经尝试过了,但它的投掷错误有一段时间了