【问题标题】:Difference between two times in minutes [closed]两次之间的差异以分钟为单位[关闭]
【发布时间】:2013-09-12 06:05:40
【问题描述】:

我已经看到了一些使用 Joda Time 和其他方法来计算两个日期之间的差异(以毫秒为单位)的示例,但是如何应用这些方法来获得两个时间之间的差异(以分钟为单位)?例如,下午 2:45 和上午 11:00 之间的差是 225 分钟。

【问题讨论】:

  • 对不起,我不认为我的问题很清楚,我想知道如何在几分钟内获得两次而不是两个日期的差异

标签: java time


【解决方案1】:

您可以通过观察一分钟是六十秒,一秒是一千毫秒来计算数学,所以一分钟是60*1000 毫秒。

如果您将毫秒除以 60,000,则秒数将被截断。您应该将该数字除以 1000 以截断毫秒,然后将 n % 60 作为秒数,将n / 60 作为分钟数:

Date d1 = ...
Date d2 = ...
long diffMs = d1.getTime() - d2.getTime();
long diffSec = diffMs / 1000;
long min = diffSec / 60;
long sec = diffSec % 60;
System.out.println("The difference is "+min+" minutes and "+sec+" seconds.");

【讨论】:

  • 我知道这一点我只是想知道如何首先获得两次而不是 2 个日期之间的实际差异
  • d1 是否可以作为一个字符串输入,例如 0225?是否也是 24 小时制?
  • @user2704743 d1d2 不是字符串,它们是 java.util.Date 对象。有不同的输入方式,具体取决于语言环境。查找“用 Java 解析日期”以查看可以输入这些日期的格式。还可以查找 Java 日历以获取另一种设置日期的选项。
  • 感谢您的帮助,我会查一下
【解决方案2】:

使用JodaTime,您可以执行以下操作来获取准确的分钟数

public static void main(String[] args) throws Exception {   //Read user input into the array
    long time = System.currentTimeMillis(); // current time
    DateTime time1 = new DateTime(time);
    DateTime time2 = new DateTime(time + 120_000); // add 2 minutes for example
    Minutes minutes = Minutes.minutesBetween(time1, time2);
    System.out.println(minutes.getMinutes()); // prints 2
}

Minutes.minutesBetween() 接受 ReadableInstant 参数,该参数不一定是 DateTime 对象。

【讨论】:

    【解决方案3】:

    要将毫秒转换为分钟,请除以60000

    【讨论】:

      猜你喜欢
      • 2012-01-03
      • 2020-06-08
      • 2018-11-25
      • 1970-01-01
      • 1970-01-01
      • 2021-11-14
      • 1970-01-01
      • 2021-05-14
      • 1970-01-01
      相关资源
      最近更新 更多