我正在使用Java与包含Time type values的MySQL数据库进行交互。我可以使用Time objects类中的getTime()方法直接将其读入Java ResultSet。
如何向当前时间对象添加分钟数?
我不允许使用Joda Time或其他外部库,也不允许更改数据库类型。
答案 0 :(得分:4)
Time extends Date
因此您可以使用涉及Date
和Calendar
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());