2013-10-15 17 views
3

У меня есть два объекта: java.sql.Date и java.sql.Time.
Каков наилучший способ объединить их в один java.util.Date?Как слить java.sql.Date и java.sql.Time на java.util.Date?

+0

Почему бы вам не использовать java.sql.Timestamp для установки даты и времени одновременно? – istovatis

+0

В базе данных эти столбцы хранятся отдельно. Я получаю их через JDBC rs.getDate («Дата») и rs.getTime («Время»); – kostepanych

ответ

3

Вы можете создать два экземпляра календаря. Вначале вы инициализируете дату, а во втором - время. Вы можете извлечь значения времени из экземпляра «время» и установить их в «дату».

// Construct date and time objects 
    Calendar dateCal = Calendar.getInstance(); 
    dateCal.setTime(date); 
    Calendar timeCal = Calendar.getInstance(); 
    timeCal.setTime(time); 

    // Extract the time of the "time" object to the "date" 
    dateCal.set(Calendar.HOUR_OF_DAY, timeCal.get(Calendar.HOUR_OF_DAY)); 
    dateCal.set(Calendar.MINUTE, timeCal.get(Calendar.MINUTE)); 
    dateCal.set(Calendar.SECOND, timeCal.get(Calendar.SECOND)); 

    // Get the time value! 
    date = dateCal.getTime(); 
1

И есть время и день, так что вы могли бы сделать что-то вроде:

Date d = new Date(2013, 11, 23); 
Time t = new Time(23, 45, 45); 
d.setMinutes(t.getMinutes()); 
d.setHours(t.getHours()); 
d.setSeconds(t.getSeconds()); 
+1

Имейте в виду, что эти методы устарели из-за очень плохого осуществления концепции обоих дат и времени. – istovatis

+0

Да, я знаю, но если он хочет сделать именно это, я думаю (а), что он уже это знает. – luanjot

+0

Использование устаревших методов - не лучший способ сделать это. – kostepanych

Смежные вопросы