有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

mysql如何在java上执行算术。sql。时间物体?

我有一些java。sql。时间对象如下:

    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。时间对象本身,但秒数也会起作用。 java中给出的大多数方法。sql。不推荐使用时间类http://docs.oracle.com/javase/7/docs/api/java/sql/Time.html


共 (2) 个答案

  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();
    }
    
  2. # 2 楼答案

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

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

    如果您正在执行大量的算术运算,那么解决方案很可能是查看Joda-Time。有关arithmetic-related信息,请参见常见问题解答。Joda Time有一个更一致、更有用的API,而且是线程安全的(与标准java.util.Date/Calendar不同)