最近一小时,我一直在寻找和尝试Web(和SO)上提供的解决方案,以了解如何Date
在Java中使用该类型,但是我似乎无法使其正常工作。我使用NetBeans 11.2,我没有用Java和它给我一个困难时期(没有双关语意)。看来LocalDateTime
,Date
并Time
计提折旧,我应该使用java.time
。
老实说,我不知道该怎么办了。我试图建立一个具有输入值的查询以保存在mySQL
数据库中。
日期的来源是 <input type="date">
SignIn.java(Servlet):
String birthDate = request.getParameter("data_birthdate");
UserDto userDto = null;
UserDao userDao = new UserDao();
try
{
// Tried this
userDto = userDao.CreateUser(LocalDateTime.parse(birthDate));
// Tried that
userDto = userDao.CreateUser(Date.parse(birthDate));
// Tried this
userDto = userDao.CreateUser(Time.parse(birthDate));
}
userDao.java (Dao) :
public void CreateUser(Date dateBirth) throws SQLException {
try {
connect = db.getConnect();
ps = connect.prepareStatement(SQL_CreateUser);
ps.setDate(1, dateBirth);
ps.executeUpdate();
}
}
您可以LocalDateTime
与一起使用PreparedStatement#setTimestamp()
。这里大致是您将如何做的:
String birthDate = request.getParameter("data_birthdate");
// assuming your text birthdates look like 1980-12-30 00:30:05
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
LocalDateTime dt = LocalDateTime.parse(birthDate, formatter);
try {
connect = db.getConnect();
ps = connect.prepareStatement(SQL_CreateUser);
ps.setTimestamp(3, Timestamp.valueOf(dt));
}
catch (Exception e) {
// handle exception
}
请注意在调用中使用的格式掩码DateTimeFormatter#ofPattern
。您需要用实际上适合您的字符串日期的任何掩码替换它。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句