【发布时间】:2017-04-26 18:01:57
【问题描述】:
好的,我制作了一个带有日期选择器的表单,它以 dd-mm-yyyy 格式提供输入值。
我正在检查每一步的输出,但我坚持第一步。所以部分代码是这样的。
Servlet 控制器:
Pacijent pacijent = new Pacijent();
try {
Date datum = new SimpleDateFormat("dd-mm-yyyy").parse(request.getParameter("datum"));
pacijent.setDatum(datum);
} catch (ParseException e) {
e.printStackTrace();
}
out.println(pacijent.getDatum());
//not important part of a code ...
//dao.addPacijent(pacijent);
Pacijent 类:
public class Pacijent {
private int id;
private String ime;
private String prezime;
private Date datum;
private String adresa;
// Getters and Setters...
}
在 PacijentDao 类中插入函数
public void addPacijent(Pacijent pacijent) {
try {
PreparedStatement ps = connection.prepareStatement("INSERT INTO pacijent (ime, prezime, datum, adresa) VALUES (?,?,?,?)");
ps.setString(1, pacijent.getIme());
ps.setString(2, pacijent.getPrezime());
ps.setDate(3, (Date) pacijent.getDatum());
ps.setString(4, pacijent.getAdresa());
ps.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
}
}
在我点击提交按钮后,它会输出这样的日期 Wed Jan 18 00:04:00 CET 2017。我需要帮助以 mysql 接受它的方式解析它。数据库中的数据字段为日期格式。
谢谢
【问题讨论】:
-
格式应为
"dd-MM-yyyy"。小写mm表示分钟,大写表示月。 -
仅供参考,麻烦的旧日期时间类,如
java.util.Date、java.util.Calendar和java.text.SimpleTextFormat现在是 legacy,被 java.time 类取代。见Tutorial by Oracle。