【发布时间】:2012-11-15 06:58:18
【问题描述】:
我想做什么?
我有一个类 Customers 有一个变量 dob // 出生日期
我正在尝试使用 java Swing 文本字段从用户那里获取输入。
将其转换为java日期,然后转换为java.sql.Date,这样我就可以将它存储在我的MySQL数据库中。
这是 Customer 类的 setter 方法
public void setDOB(java.sql.Date dob)
{
DateOfBirth = dob;
}
这是我的 Swing 类(应用程序窗口加载器)的代码
//Date
if(textField_5.getText().isEmpty())
lblerr.setVisible(true);
else
{
try {
SimpleDateFormat sdf = new SimpleDateFormat("dd-MM-YYYY");
Date dob = null;
dob = sdf.parse(textField_5.getText());
java.sql.Date sqlDate = new java.sql.Date(dob.getTime());
c1.setDOB(sqlDate);
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
allinfoisentered = true;
}
textField_5 - 是用户输入日期的字段。
我使用以下不同的输入测试了我的应用程序:
- 1993 年 12 月 12 日
- 10-05-1970
问题是:存储在 MySQL 表中的值是 1992-12-27,我有一种强烈的感觉,这是一些默认日期。
我想知道,我如何将字符串解析为日期,然后将其发送到 MySQL 表。
【问题讨论】:
-
为什么你抓到
ParseException却又像成功一样继续? -
“dd-MM-YYYY”应该是“dd-MM-yyyy”。如果您使用
Y,它会产生ParseException。 -
setDOB中dob参数的字段长什么样?你那里还有正确的价值观吗?
-
@JonSkeet 我继续,好像我已经成功了,因为我想看看我的查询是否运行良好。它正在运行,我的数据确实进入了表格。
-
@BheshGurung 是的,将“dd-MM-YYYY”更改为“dd-MM-yyyy”有效,谢谢分配。