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をラップするので、減算して結果をオブジェクトjava.util.Dateに入れることに意味があるかどうかはわかりません。java.sql.Time

私はむしろ減算を実行し (ミリ秒フィールドとgetTimeアクセサーを使用する可能性が最も高い)、結果を秒数/ミリ秒数などを表す数値として格納します。

多くの演算を実行している場合、解決策はJoda-Timeを見る可能性が最も高いです。算術関連の情報については、FAQ を参照してください。Joda-Time には、より一貫性のある便利な API があり、さらにスレッドセーフです (標準の とは異なりますjava.util.Date/Calendar) 。

于 2012-06-21T09:31:13.333 に答える
1

Javaで日付と時刻を処理するのに非常に優れたJodaTimeJavaライブラリを使用することをお勧めします。

例:

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