在Java中向Time对象添加分钟

时间:2013-12-07 11:12:52

标签: java spring time

我正在使用Java与包含Time type values的MySQL数据库进行交互。我可以使用Time objects类中的getTime()方法直接将其读入Java ResultSet

如何向当前时间对象添加分钟数?

我不允许使用Joda Time或其他外部库,也不允许更改数据库类型。

我已经阅读了我能找到的所有内容(thisthis和其他许多内容),但没有任何回复实际使用时间对象。

3 个答案:

答案 0 :(得分:4)

Time extends Date因此您可以使用涉及DateCalendar API的技术。

import static java.util.Calendar.MINUTE;

...

final Time t = ... your Time instance ...;
final Calendar c = Calendar.getInstance();
c.setTime(t);
c.add(MINUTE, 10);
t.setTime(c.getTimeInMillis());

...保持你的手指交叉,这不会弄乱时区/夏令时转换。

答案 1 :(得分:3)

由于SQL Time对象现在只存储毫秒(其他所有内容都已弃用),您只需将其转换为Calendar对象并添加分钟即可:

Time mySqlTimeObject = getTime();

Calendar cal = Calendar.getInstance();
cal.setTimeInMillis(mySqlTimeObject.getTime());
cal.set(Calendar.MINUTE, cal.get(Calendar.MINUTE) + 10);

Time myNewSqlTimeObject = new Time(cal.get(Calendar.MILLISECOND));

答案 2 :(得分:2)

我认为您可以将Time转换为java.util.Date,例如:

        Time time = new Time (12,1,1);
        Date date = new Date(time.getTime());

        Calendar cal = Calendar.getInstance();
        cal.setTime(date);
        cal.add(Calendar.MINUTE, 10);


        time = new Time (cal.getTime().getTime());