如何计算两个timeStamp(不同日期)之间的分钟差?

时间:2019-04-26 10:40:37

标签: java android time timestamp

我试图在编写时计算两个java时间戳之间的分钟差: 时间戳记t1,t2;

t2.getTime()-t1.getTime(); 它仅返回两次之间的差,并且 我需要整天(包括几天)的差额

4 个答案:

答案 0 :(得分:0)

尝试一下

long difftime = t1.getTime() - t2.getTime();
long seconds = diff / 1000;
long minutes = seconds / 60;
long hours = minutes / 60;
long days = hours / 24;

答案 1 :(得分:0)

假设您的意思是java.sql.Timestamp,下面的代码似乎可以正常工作:

import java.sql.Timestamp;

class Scratch {

    public static final long MINUTES_PER_HOUR = 60;
    public static final long SECONDS_PER_MINUTE = 60;
    public static final long HOURS_PER_DAY = 24;
    public static final long MILLIS_PER_SECOND = 1000L;

    public static void main(String[] args) {
        long oneDayPlusFiveMinutesInMillis = (MILLIS_PER_SECOND * SECONDS_PER_MINUTE) * ( 5 + MINUTES_PER_HOUR * HOURS_PER_DAY);
        Timestamp t0 = new Timestamp(System.currentTimeMillis());
        Timestamp t1 = new Timestamp(t0.getTime() + oneDayPlusFiveMinutesInMillis);
        long diff = (t1.getTime() - t0.getTime()) / (MILLIS_PER_SECOND * SECONDS_PER_MINUTE);
        System.out.println("t1 - t0 = " + diff + " minutes");
    }
}

返回:

t1 - t0 = 1445 minutes

答案 2 :(得分:0)

2个时间戳之间的差异给出毫秒。之后应用数学:

// get time difference in seconds
long milliseconds = timestamp2.getTime() - timestamp1.getTime();
int seconds = (int) milliseconds / 1000;

// calculate hours minutes and seconds
int hours = seconds / 3600;
int minutes = (seconds % 3600) / 60;
seconds = (seconds % 3600) % 60;

答案 3 :(得分:0)

    Timestamp t1 = new Timestamp(new Date("04/26/2019 20:32:49").getTime());
    Timestamp t2 = new Timestamp(new Date("04/27/2019 19:32:49").getTime());

    long diff = t2.getTime() - t1.getTime();

    long diffSeconds = diff / 1000 % 60;
    long diffMinutes = diff / (60 * 1000) % 60;
    long diffHours = diff / (60 * 60 * 1000) % 24;
    long diffDays = diff / (24 * 60 * 60 * 1000);
    long diffTotMinutes = diff / (60 * 1000);

    System.out.println("Days: " + diffDays + " \nTime: " + diffHours + ":" + diffMinutes + ":" + diffSeconds);
    System.out.println("Total Minutes: " + diffTotMinutes);

输出:

Days: 0 
Time: 23:0:0
Total Minutes: 1380