【问题标题】:difference in seconds between two dates using joda time?使用joda时间的两个日期之间的秒差?
【发布时间】:2013-02-14 14:35:36
【问题描述】:

假设有两个日期 A(开始时间)和 B(结束时间)。 A & B 可以是同一天的时间,也可以是不同的时间。我的任务是以秒为单位显示差异。我使用的日期格式是

Date Format :: "yyyy-MM-dd'T'HH:mm:ss.SSSZ" 

例如

start date ::   "2011-11-16T14:09:23.000+00:00"
end date ::     "2011-11-17T05:09:23.000+00:00"            

感谢您的帮助。

【问题讨论】:

    标签: java jodatime


    【解决方案1】:

    使用Seconds 类:

    DateTime now = DateTime.now();
    DateTime dateTime = now.plusMinutes(10);
    Seconds seconds = Seconds.secondsBetween(now, dateTime);
    System.out.println(seconds.getSeconds());
    

    这段代码打印出600。我想这就是你需要的。

    作为进一步的建议,请查看joda-time 的文档。它非常好,而且大多数东西都很容易发现。

    如果您在解析日期方面需要一些帮助(确实在文档中),请查看相关问题,如下所示:

    Parsing date with Joda with time zone

    【讨论】:

    • 如果您正在寻找差异(作为正数),请务必采用secondsBetween 的绝对值,否则,如果参数颠倒(例如,如果你打电话给Seconds.secondsBetween(dateTime, now)
    【解决方案2】:

    @pcalcao 的答案在大多数情况下都是最好的。请注意,秒数将四舍五入为整数。

    如果您对亚秒级精度感兴趣,只需减去毫秒:

    double seconds = (now.getMillis() - dateTime.getMillis()) / 1000d;
    

    【讨论】:

      猜你喜欢
      • 2016-04-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-12-03
      • 2023-04-01
      • 1970-01-01
      相关资源
      最近更新 更多