将日期从Jdatepicker插入MS Access

时间:2017-11-28 14:55:07

标签: java ms-access datapicker

我有一个GUI java接口,允许我打开一个JDataPicker,以便将选定的日期插入到ms-access数据库中。

我尝试直接从JDataPicker插入日期: Date date1 =(Date)jdate_picker.getModel()。getSelectedValue(); 但是,检索到的格式返回:java.text.ParseException:Unparseable date:“Tue Apr 26 00:00:00 EDT 2016”(偏移0)。

我尝试了几件事,但似乎没有任何作用。例如,我尝试通过jdate_picker.getModel()。getYear()(以及getMonth()和getDay())分别检索月,年和日。然后我将结果连接起来以获得MM / DD / YYYY格式。之后我使用DateFormatter将字符串转换为日期格式,但它仍然是,我得到日期格式异常。我的问题如下:

1-有没有一种方法可以让我从JDatePicker中将日期插入Access数据库?

2-如果没有,是否有其他工具可以让我选择日期并将其发送到Access数据库?

谢谢。

1 个答案:

答案 0 :(得分:0)

您正在使用已被java.time类取代的麻烦的旧日期时间类。避免使用SELECTDate

对于没有时区且没有时间的仅限日期的值,请使用Calendar

LocalDate

将数据作为对象与数据库进行交换,而不仅仅是字符串。

如果JDBC驱动程序符合JDBC 4.2及更高版本,则可以直接使用java.time对象。

LocalDate.of(
    jdate_picker.getModel().getYear() , 
    jdate_picker.getModel().getMonth(), 
    jdate_picker.getModel().getDay()
)

并检索:

myPreparedStatement.setObject( … , myLocalDate ) ; 

Stack Overflow上已经多次讨论过这些问题。搜索更多信息。