我有一些java.sql.Time对象如下:
String s1 = "12:00:04";
String s2 = "12:23:34";
String s3 = "12:03:02";
String s4 = "11:00:54";
int dij = j-i;
int dmj = j-m;
java.sql.Time tdi = java.sql.Time.valueOf(s1);
java.sql.Time tki = java.sql.Time.valueOf(s2);
java.sql.Time tdm = java.sql.Time.valueOf(s3);
java.sql.Time tdj = java.sql.Time.valueOf(s4);
如何对这些对象执行减法运算?我想在java.sql.Time对象本身得到结果,但秒数也会起作用。 不推荐使用java.sql.Time类中给出的大多数方法。 http://docs.oracle.com/javase/7/docs/api/java/sql/Time.html
答案 0 :(得分:3)
由于java.sql.Time
包裹java.util.Date
,我不确定减法并将结果放在java.sql.Time
对象中有意义。
我宁愿执行减法(最有可能使用毫秒字段和getTime访问器),并将结果存储为表示秒数/毫秒等的数字。
如果您正在执行大量算术,则解决方案最有可能查看Joda-Time。请参阅常见问题解答arithmetic-related信息。 Joda-Time具有更加一致且有用的API,并且是线程安全的(与标准java.util.Date/Calendar
不同)
答案 1 :(得分:1)
我建议您使用Joda Time java library,它非常擅长处理Java中的日期和时间。
示例:
public boolean isRentalOverdue(DateTime datetimeRented) {
Period rentalPeriod = new Period().withDays(2).withHours(12);
return datetimeRented.plus(rentalPeriod).isBeforeNow();
}