0

我有一个 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 数据库?

谢谢你。

4

1 回答 1

0

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

对于没有时区和没有时间的仅日期值,请使用LocalDate.

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

与您的数据库交换数据作为对象,而不仅仅是字符串。

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

myPreparedStatement.setObject( … , myLocalDate ) ; 

并检索:

LocalDate myLocalDate = myResultSet.getObject( … , LocalDate.class ) ;

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

于 2017-11-28T15:32:34.890 回答