Java 获取两个时间戳之间的时间差

Java 获取两个时间戳之间的时间差,java,sql,oracle,Java,Sql,Oracle,我想知道如何得到两个时间戳之间的时间差。 这两个时间戳将始终位于同一日期 我得到一个负的long值作为结果,而我希望得到以分钟为单位的时差 SQL为我提供了正确的数据,但我也将附加代码a public long CalculateTimeFromTimestamp(Timestamp d1, Timestamp d2){ SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); Date endDate

我想知道如何得到两个时间戳之间的时间差。 这两个时间戳将始终位于同一日期

我得到一个负的long值作为结果,而我希望得到以分钟为单位的时差

SQL为我提供了正确的数据,但我也将附加代码a

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;    
}

找出以毫秒为单位的差值,然后除以一分钟内的毫秒数(60000):


@fge:如何将
int
转换为字符串会导致注入漏洞?ARBEITSBLOCK.STARTZEIT和
ARBEITSBLOCK.ENDZEIT
的数据类型是什么?它们是日期,但我将时间除以1000和*(-1)。谢谢你!
   public long CalculateTimeFromTimestamp(Timestamp d1, Timestamp d2){
        return Math.abs(d1.getTime() - d2.getTime()) / 60000L;
    }