我想知道如何获得两个时间戳之间的时差。 两个时间戳将始终在同一个日期。
我收到一个负的长值作为结果,而我想得到分钟的时间差。
SQL为我提供了正确的数据,但我也会附上代码。
public long CalculateTimeFromTimestamp(Timestamp d1, Timestamp d2){
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date endDate = null, reqDate= null;
try {
endDate = sdf.parse(d1.toString());
reqDate = sdf.parse(d2.toString());
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return endDate.getTime() - reqDate.getTime();
}
public long getArbeitszeitPerPro(int id) {
Statement stmt = null;
String sql = "SELECT ARBEITSBLOCK.STARTZEIT , "
+ " ARBEITSBLOCK.ENDZEIT "
+ " FROM ARBEITSBLOCK "
+ " INNER JOIN TAETIGKEIT "
+ " ON ARBEITSBLOCK.TAETIGKEIT_ID = TAETIGKEIT.ID "
+ " INNER JOIN PROJEKT "
+ " ON PROJEKT.ID = TAETIGKEIT.PROJEKT_ID "
+ " WHERE PROJEKT.ID = " + id;
long ergb = 0;
try{
stmt = con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_READ_ONLY);
ResultSet rs = stmt.executeQuery(sql);
if(rs.last()){
s = new Timestamp[rs.getRow()][2];
rs.beforeFirst();
}
while(rs.next()){
ergb += d.CalculateTimeFromTimestamp(rs.getTimestamp(1), rs.getTimestamp(2));
}
}
catch(SQLException e){
e.printStackTrace();
}
return ergb;
}
答案 0 :(得分:0)
找出以毫秒为单位的差异,除以一分钟内的毫秒数(60,000):
public long CalculateTimeFromTimestamp(Timestamp d1, Timestamp d2){
return Math.abs(d1.getTime() - d2.getTime()) / 60000L;
}