我有一个广泛的DATE-TIME转换类,但是遇到一种无法解决的情况:
我有一个java.util.date:星期二5月10日00:00:00 BST 2011 我有一个java.sql.time:03:58:44
我需要创建一个java.util.date:2011年5月10日星期二03:58:44 BST
我想到的唯一方法是:
public static Date getDate(Date date, Time time) { Calendar calendar=Calendar.getInstance(); calendar.set(date.getYear(), date.getMonth(), date.getDay(), time.getHours(), time.getMinutes(), time.getSeconds()); return calendar.getTime(); }
完全不推荐使用的代码,并且不起作用:java.sql.Time.getYear上的java.lang.IllegalArgumentException(未知源)
有任何想法吗?
java.sql.Time只是java.util.Date的包装。您可以像添加两个java.util.Date对象一样使用它。
例如,将Calendar设置为java.sql.Time:
calendar.setTime(time);
现在提取小时/分钟/秒字段,即:
calendar.get(Calendar.HOUR);
接下来,将Calendar设置为java.util.Date对象,并将这三个字段添加到其时间,即:
calendar.add(Calendar.HOUR, hour);
并获取日期:
calendar.getTime();