1

我正在使用 Eclipse Juno、java 和 MySQL。

我正在尝试检查日期是否null在将其转换为之前将其java.sql.Date写入数据库之前。

如果日期不为空,则以下作品:

java.sql.Date sqlPackIn = new java.sql.Date(dateBoxArchived.getValue().getTime());

所以我首先检查null:

//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;
  }

但是,我收到一个错误(Type mismatch can not convert from long to datesqlDateArchived = (dateBoxArchived.getValue().getTime());

建议的解决方法是将其更改为长。我找不到任何可以解决此问题的更改。

非常感谢您的帮助。

问候,

格林

4

3 回答 3

3

几点:

  • 你从不使用当前时间的初始化值,所以不要编码
  • 您应该将现有日期的时间传递给构造函数
  • 你只需要一行

尝试这个:

java.sql.Date sqlDateArchived = dateBoxArchived.getValue() == null ? null : new java.sql.Date(dateBoxArchived.getValue().getTime());
于 2013-07-03T04:23:16.730 回答
1

Date.getTime()返回一个long. 大概你sqlDateArchived是一个Date. 你不能把 a 放在 alongDate。要么更改sqlDateArchived为 long,要么创建一个新的,Date例如:

sqlDateArchived = new Date(dateBoxArchived.getValue().getTime());
于 2013-07-03T04:11:58.643 回答
0

在您的代码中 if (dateBoxArchived.getValue() != null){ sqlDateArchived = dateBoxArchived.getValue().getTime();

将最后一行转换为

sqlDateArchived = new Date(dateBoxArchived.getValue().getTime());`
于 2013-07-03T04:11:51.190 回答