一尘不染

将java.util.date与java.sql.Time合并

sql

我有一个广泛的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(未知源)

有任何想法吗?


阅读 178

收藏
2021-05-05

共1个答案

一尘不染

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();
2021-05-05