簡體   English   中英

獲取兩個時間戳之間的時間差

[英]Get Time difference between two Timestamps

我想知道如何獲得兩個時間戳之間的時差。 兩個時間戳將始終位於同一日期。

我收到一個負長值作為結果,而我想獲得以分鍾為單位的時間差。

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

找出以毫秒為單位的差異,然后除以一分鍾內的毫秒數 (60,000):

   public long CalculateTimeFromTimestamp(Timestamp d1, Timestamp d2){
        return Math.abs(d1.getTime() - d2.getTime()) / 60000L;
    }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM