【问题标题】:Jodatime time difference gives negative result [duplicate]Jodatime时差给出否定结果[重复]
【发布时间】:2019-11-12 15:34:12
【问题描述】:

我计算两个日期之间的时间差。一个来自数据库,另一个来自当前时间。

Date currentDate = new Date();
Date dbDate = loader.getsuccessDate();
DateTime d1 = new DateTime (currentDate.getTime());
DateTime d2 = new DateTime (dbDate.getTime());

System.out.println(Hours.hoursBetween(d1 - d2).getHours);

// gives results as -285 

如何将负结果转换为正值。

【问题讨论】:

  • 数学转换将是与-1 的乘法,我想...这里是正确的吗?我的意思是285 是正确的结果吗?如果没有示例数据,我无法告诉你...
  • 请在不询问编译错误时发布可编译代码。我得到 运算符 - 未定义参数类型 org.joda.time.DateTime、org.joda.time.DateTime。这意味着我不确定究竟是哪个代码给了你否定的结果,这对于任何试图回答你问题的人来说都是一个很大的劣势。

标签: java date datetime


【解决方案1】:

我假设结果是 w.r.t.分钟。我会这样做。

int totalTimeInMinutes = Hours.hoursBetween(d1 - d2).getHours;
int hour = 0;
int minute = 0;
if (totalTimeInMinutes < 0)
    totalTimeInMinutes *= -1;

hour = totalTimeInMinutes / 60;
minute = totalTimeInMinutes % 60;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-10-20
    • 2020-08-12
    • 2016-03-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-04
    相关资源
    最近更新 更多