2013-07-03 44 views
1

我正在使用Eclipse Juno,Java和MySQL。從java.util.date轉換爲java.sql.date之前檢查空日期

我想檢查日期是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());

得到一個錯誤( Type mismatch can not convert from long to date

並且建議的修復方法是將其更改爲long。我無法找到解決此問題的任何更改。

非常感謝您的幫助。

問候,

格林

+0

'new java.sql.Date(dateBoxArchived.getValue()。getTime())'? – MadProgrammer

+0

你怎麼聲明'sqlDateArchived'? –

回答

3

幾點:

  • 你從不使用的當前時間的初始值,所以不編碼它
  • 你應該通過現有的日期時間到構造
  • 你只需要一條線

試試這個:

java.sql.Date sqlDateArchived = dateBoxArchived.getValue() == null ? null : new java.sql.Date(dateBoxArchived.getValue().getTime()); 
+0

嗨波希米亞人,這工作。非常感謝您的幫助。問候,格林。 – Glyn

0

在你的代碼 if (dateBoxArchived.getValue() != null){ sqlDateArchived = dateBoxArchived.getValue().getTime();

轉換最後一行

sqlDateArchived = new Date(dateBoxArchived.getValue().getTime());` 
1

Date.getTime()返回long。想必你的sqlDateArchivedDate。您不能將long放入Date。要麼改變sqlDateArchived是一個長期的,或創建一個新Date,如:

sqlDateArchived = new Date(dateBoxArchived.getValue().getTime()); 
相關問題