我有一个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数据库?
谢谢。
答案 0 :(得分:0)
您正在使用已被java.time类取代的麻烦的旧日期时间类。避免使用SELECT
和Date
。
对于没有时区且没有时间的仅限日期的值,请使用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上已经多次讨论过这些问题。搜索更多信息。