0

我有一些 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

4

2 回答 2

3

由于java.sql.Time包装 a java.util.Date,我不确定减法并将结果放入java.sql.Time对象中是否有意义

我宁愿执行减法(很可能使用毫秒字段和getTime访问器),并将结果存储为表示秒数/毫秒数等的数字。

如果您正在执行大量算术,则最有可能查看Joda-Time的解决方案。有关算术相关信息,请参阅常见问题解答。Joda-Time 有一个更一致和有用的 API,而且是线程安全的(不像标准的java.util.Date/Calendar

于 2012-06-21T09:31:13.333 回答
1

我建议你使用Joda Time Java 库,它非常擅长处理 Java 中的日期和时间。

例子:

public boolean isRentalOverdue(DateTime datetimeRented) {
  Period rentalPeriod = new Period().withDays(2).withHours(12);
  return datetimeRented.plus(rentalPeriod).isBeforeNow();
}
于 2012-06-21T09:45:53.837 回答