【发布时间】:2015-08-05 09:02:37
【问题描述】:
我正在尝试使用 UCanAccess 从 Microsoft Access 数据库中检索日期信息。我需要将它放在 tableview 的 LocalDate 列中,我正在这样做
Date date = res.getDate(3);
LocalDate dateEchantillonnage = LocalDate.parse( new SimpleDateFormat("yyyy-MM-dd").format(date) );
但这给我带来了两个问题:
第一个是它给出了 NullPointerException 因为有时日期可能为空,所以我想知道是否有办法解决这个问题。
第二个是我替换的时候
Date date = res.getDate(3);
LocalDate dateEchantillonnage = LocalDate.parse( new SimpleDateFormat("yyyy-MM-dd").format(date) );
与
Date date = new Date(2015-07-01);
LocalDate dateEchantillonnage = LocalDate.parse( new SimpleDateFormat("yyyy-MM-dd").format(date) );
它总是将日期显示为:1970-01-01
【问题讨论】:
-
这看起来与 javafx 无关?对于 Date 到 LocalDate 的转换,请参阅stackoverflow.com/q/21242110/203657
-
好的。我不确定@kleopatra
-
您可以检查您的 JDBC 驱动程序是否支持
java.time-package: 的 JDBC 4.2 转换:例如getObject(idx, LocalDate.class)。但支持因驱动程序而异。 -
@MarkRotteveel - 好建议。但是,我只是用 UCanAccess 3.0.0 尝试过,不幸的是它不起作用。
-
附注
new Date(2015-07-01)与new Date(2007)(2015 - 7 - 1 = 2007) 相同,即 epoch 后 2007 毫秒,或1970-01-01 00:00:02.007 UTC
标签: java date jdbc java-8 ucanaccess