java - 白天和时间之间的时差

标签 java datetime

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

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

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

最佳答案

您需要将 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");
    }

关于java - 白天和时间之间的时差,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13775503/

相关文章:

java - 将 Eclipse 附加到远程进程

Java 堆栈与队列性能

c# - 使用从数据库检索的 DateTime 进行减法给出奇怪的结果

PHP - date() 不安全?我用什么?

sql-server - 如何将日期时间格式从 'YYYY-MM-DD' 转换为 'MM/DD/YYYY HH:MM:SS AM'

java - Jersey HTTP 响应 200 OK 但返回内容错误(用户名/密码不正确)

java - android studio mergedebugresources java.lang.ArrayIndexOutOfBoundsException(无错误信息)

java - 如何在 JFrame 之间来回切换

c++ - 纳秒分辨率到纳秒纪元的日历时间

mysql - 以 INT(毫秒)格式而不是 yyyy-mm-dd hh :mm:ss format? 格式存储日期好吗