我正在使用 Eclipse Juno、java 和 MySQL。
在将日期写入数据库之前,我正在尝试检查日期是否为 null
,然后再将其转换为 java.sql.Date
。
如果日期不为空,则以下作品:
java.sql.Date sqlPackIn = new java.sql.Date(dateBoxArchived.getValue().getTime());
所以我首先检查是否为空:
//TODO check for a null date and handle it for dateBoxArchived and dateBoxPackOut
java.sql.Date sqlDateArchived = new java.sql.Date(System.currentTimeMillis());
if (dateBoxArchived.getValue() != null){
sqlDateArchived = dateBoxArchived.getValue().getTime();
} else {
sqlDateArchived = null;
}
但是,我在 sqlDateArchived = (dateBoxArchived.getValue().getTime());
上收到错误消息(类型不匹配无法从 long 转换为 date
)
建议的修复方法是将其更改为长。我找不到任何可以解决此问题的更改。
非常感谢您的帮助。
问候,
格林
最佳答案
几点:
- 你从不使用当前时间的初始化值,所以不要编码
- 您应该将现有日期的时间传递给构造函数
- 你只需要一行
试试这个:
java.sql.Date sqlDateArchived = dateBoxArchived.getValue() == null ? null : new java.sql.Date(dateBoxArchived.getValue().getTime());
关于java - 在从 java.util.date 转换为 java.sql.date 之前检查空日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17439510/