java - 如何从 html 表单获取日期到 servlet
问题描述
我有一个 HTML 表单,其中有一个日期和时间选择器。我要做的是通过request.getParameter
servlet 获取日期和时间,然后将其插入到我的数据库中。如何以日期和时间格式获取该日期和时间,或者将它们作为字符串获取然后解析它们。
代码:
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());
但以上几行抛出错误,我想我错过了什么或写错了什么
解决方案
您有两个不同的 Date 对象(util.Date 和 sql.Date),因此您需要从 util.Date 转换为 sql.Date 才能使用 setDate 方法。
推荐阅读
- amazon-web-services - “无法执行 HTTP 请求:连接到
.s3.amazonaws.com:443 失败:连接超时 - linux - 在第二次出现字符 bash 后替换子字符串
- spring - 将数据提交到我的springboot应用程序时,所需的字符串参数'file'不存在()
- .net - 如何等待所有线程完成而不阻塞 VB.NET 中的 UI?
- powershell - Powershell删除文本文件中的特定文本
- .htaccess - 如何在域指向后使用 htaccess 从 drupal 8 安装中的 URL 跳过 Web 目录?
- firebase - Flutter Firestore 展开文档数据
- odoo - odoo.tools.convert.ParseError:“无法更新丢失的记录”
- python - 如何在单元测试中强调输入数据的限制?
- c# - 如何从多个 Id 中获取属性值