2013-07-03 9 views
1

Я использую Eclipse Juno, java и MySQL.Проверка нулевой даты перед преобразованием в java.sql.date из java.util.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; 
    } 

Однако я получаю сообщение об ошибке (Type mismatch can not convert from long to date) на sqlDateArchived = (dateBoxArchived.getValue().getTime());

и рекомендуемое исправление заключается в том, чтобы изменить его на длинный. Я не могу найти никаких изменений, которые разрешают это.

Ваша помощь очень признательна.

С уважением,

Глин

+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. Предположительно, ваш sqlDateArchived является Date. Вы не можете поставить long в Date. Либо изменить sqlDateArchived быть длинным, или создать новый Date как:

sqlDateArchived = new Date(dateBoxArchived.getValue().getTime()); 
Смежные вопросы