白天和时间之间的时差

时间:2012-12-08 07:28:46

标签: java datetime

我正在开发一个Java Swing应用程序,它发送一个特定日期和时间的报告,例如报告时间是周三09:00:00。我试图用报告时间计算当前日期和时间之间的时差。例如:

DayTime1 =“Wed 09:00:00”
DayTime2 =“星期二13:00:00”

如何计算这两个值之间的时差?我自己尝试过,但我甚至无法接近结果。

1 个答案:

答案 0 :(得分:2)

您需要将String创建为Date对象,然后计算两个实例之间的持续时间。

DateFormat dateformat = new SimpleDateFormat("EEE HH:mm:ss");
Date date1 = dateformat.parse(dayTime1);
Date date2 = dateformat.parse(dayTime2);
getDuration(date1, date2, Calendar.MINUTE);

public static long getDuration(Date returnTime, Date leaveTime, int scale) {
        long durationInMillis = returnTime.getTime() - leaveTime.getTime();
        switch (scale) {
            case Calendar.MINUTE:
                return durationInMillis / ONE_MINUTE_IN_MILLIS;
            case Calendar.MILLISECOND:
                return durationInMillis;
            case Calendar.SECOND:
                return durationInMillis / ONE_SECOND_IN_MILLIS;
            case Calendar.HOUR:
                return durationInMillis / ONE_HOUR_IN_MILLIS;
            case Calendar.DAY_OF_YEAR:
            case Calendar.DATE:
                return durationInMillis / ONE_DAY_IN_MILLIS;
        }
        throw new IllegalArgumentException("invalid scale specified");
    }