我的对话框中有两个jDateChooser,我想保存到有这些数据类型问题的MS-SQL DB。知道如何解决这个问题!我只能在数据库中将数据类型转换为nvarchar并将值转换为从jDateChooser返回的字符串时才能执行此操作。
//我可以用这种方式保存,但我不使用jDateChooser;
java.util.Date utilDate = new java.util.Date();
java.sql.Date sqldate = new java.sql.Date(utilDate.getTime());
//我无法使用jDateChooser保存日期
java.sql.Date sqldate = new java.sql.Date(jDateChooser3.getDate());
//只有我找到的方式
SimpleDateFormat dateFormat = new SimpleDateFormat("dd/MM/yyyy");
String sd = dateFormat.format(jDateChooser3.getDate());
obj.setStartDate(sd);
//
答案 0 :(得分:5)
根据您发布的代码判断,jDateChooser3.getDate()
返回java.util.Date
实例,而java.sql.Date(millis)
构造函数则期望日期/时间为long
毫秒值。
使用此代码,它将起作用:
java.sql.Date sqldate = new java.sql.Date(jDateChooser3.getDate().getTime());
由于它来自日期选择器组件,无效输入最有可能导致null
返回日期,因此您可能还需要检查:
java.util.Date d = jDateChooser3.getDate();
if (d == null) {
System.out.println("No date specified!");
} else {
java.sql.Date sqldate = new java.sql.Date(d.getTime());
// Do something with sqldate
}
答案 1 :(得分:0)
右键单击jDateChooser。转到Properties和dateFormatString。设置此格式:dd-MM-yyyy。
答案 2 :(得分:-1)
Date keyword = jDateChooserattendance.getDate();
java.sql.Date sqldate = new java.sql.Date(keyword.getTime());