在java中混合使用java.util.date和java.sql.Time

在java中混合使用java.util.date和java.sql.Time,java,Java,我想在java.util.date和java.sql.Time中构造一个基于日期的文件,因此我编写了以下代码: Calendar cal = Calendar.getInstance(); cal.setTime(date); cal.set(Calendar.HOUR_OF_DAY,time.getHours()); cal.set(Calendar.MINUTE, time.getMinutes()); cal.set(Calendar.SECOND, time.getSec

我想在java.util.date和java.sql.Time中构造一个基于日期的文件,因此我编写了以下代码:

Calendar cal = Calendar.getInstance();
cal.setTime(date);
cal.set(Calendar.HOUR_OF_DAY,time.getHours());
cal.set(Calendar.MINUTE,     time.getMinutes());
cal.set(Calendar.SECOND,     time.getSeconds());

cal.getTime();

它可以工作,但ime.getHours()、time.getMinutes()、time.getSeconds()显示为已弃用,我们如何才能使用无弃用方法???

从您正在做的事情来看,我认为这就是您想要的:

Calendar mergedCal = Calendar.getInstance();
mergedCal.setTime(date);
Calendar sqlCal = Calendar.getInstance();
sqlCal.setTime(time.getTime());
mergedCal.set(Calendar.HOUR_OF_DAY, sqlCal.get(Calendar.HOUR_OF_DAY));
mergedCal.set(Calendar.MINUTE, sqlCal.get(Calendar.MINUTE));
mergedCal.set(Calendar.SECOND, sqlCal.get(Calendar.SECOND));
mergedCal.getTime();

在这个计算结束时,
mergedCal
将使用
date
中的日期和
time
中的时间
java.sql.time
也有日期,因此您只需使用
cal.setTime(time.getTime())
,假设您的日期是dateTime的子类。你可以直接使用。