我正在从数据库中撤回日期和时间.它们存储在单独的字段中,但我想将它们组合成一个适当反映日期/时间的java.util.Date对象.
这是我原来的方法,但它有缺陷.我总是得到一个6小时的日期/时间.我认为这是因为Time有一个时区偏移量和Date,我真的只需要其中一个来获得时区偏移量.
有关如何做到这一点的任何建议,以便它会给我正确的日期/时间?
import java.sql.Time;
import java.util.Calendar;
import java.util.Date;
import org.apache.commons.lang.time.DateUtils;
public static Date combineDateTime(Date date, Time time)
{
if (date == null)
return null;
Date newDate = DateUtils.truncate(date, Calendar.DATE);
if (time != null)
{
Date t = new Date(time.getTime());
newDate = new Date(newDate.getTime() + t.getTime());
}
return newDate;
}
Run Code Online (Sandbox Code Playgroud)
Pau*_*lin 10
我将日期和时间都放入Calendar对象,然后使用各种Calendar方法从第二个对象中提取时间值并将它们放入第一个对象中.
Calendar dCal = Calendar.getInstance();
dCal.setTime(date);
Calendar tCal = Calendar.getInstance();
tCal.setTime(time);
dCal.set(Calendar.HOUR_OF_DAY, tCal.get(Calendar.HOUR_OF_DAY));
dCal.set(Calendar.MINUTE, tCal.get(Calendar.MINUTE));
dCal.set(Calendar.SECOND, tCal.get(Calendar.SECOND));
dCal.set(Calendar.MILLISECOND, tCal.get(Calendar.MILLISECOND));
date = dCal.getTime();
Run Code Online (Sandbox Code Playgroud)