2012-04-17 9 views
0

私は、2つの時間の違いであるTimeオブジェクトのResultSetを持っています。それらは秒の範囲(例えば、 "00:01:12"または "00:00:22")です。Javaで一連のSQL時刻値を追加する方法

これらのjava.sql.time値を合計して時間の合計にするにはどうすればよいですか?

ありがとうございます!

答えて

1
public Date sumDates(String[] dateStrings, DateFormat df) { 
    int secs=0, mins=0, hrs=0; 
    Calendar calendar = Calendar.getInstance(); 
    for (int i=0; i<dateStrings.length; i++) { 
     String dateString = dateStrings[i]; 
     Date date = (Date) df.parse(dateString); 
     calendar.setTime(date); 
     secs += calendar.get(Calendar.SECOND); 
     mins += calendar.get(Calendar.MINUTE); 
     hrs += calendar.get(Calendar.HOUR); 
    } 
    calendar.set(0, 0, 0, hrs, mins, secs); 
    return calendar.getTime(); 
} 

例:

String[] dateStrings = { "00:01:12", "00:00:22" }; 
DateFormat df = new SimpleDateFormat("hh:mm:ss"); 
Date total = sumDates(dateStrings, df); 
System.out.println(df.format(total)); //output: 00:01:34 
0

java.sql.Timeは時間ではなく時間を表すように設計されているため、そのクラスのオブジェクトで直接算術演算を行うことはできません。いくつかのRDBMSが区別を提供しているので、Durationのjava.sqlアナログはありません。とにかく、あなたは常にこのような(半擬似)コードで、手動でそれを行うことができます。使用方法の

int totalSeconds = 0; 
for (java.sql.Time s : myResultSet) { 
    totalSeconds += s.getHours()*3600 + s.getMinutes()*60 + s.getSeconds(); 
} 
+0

ジョダ時間を時間間隔をしますか。 –

関連する問題