0

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

DayTime1 =“周三 09:00:00”
DayTime2 =“周二 13:00:00”

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

4

1 回答 1

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");
    }
于 2012-12-08T07:36:06.173 回答