【发布时间】:2019-02-15 12:57:46
【问题描述】:
我的日期格式为:EEE, dd MMM yyyy HH:mm:ss Z
例如,
日期 1:2018 年 9 月 10 日星期一 08:32:58 GMT
日期 2:2018 年 9 月 11 日星期二 03:56:10 GMT
在上述情况下,我需要日期差为 1,但如果我使用 joda 日期时间或手动将日期转换为毫秒,我将获得 0 的值。
供参考:http://www.mkyong.com/java/how-to-calculate-date-time-difference-in-java/
任何线索都会有所帮助。 示例:
Date date1 = new Date("Mon Sep 10 08:32:58 GMT 2018");
Date date2 = new Date("Tue Sep 11 03:56:10 GMT 2018");
DateTime start = new DateTime(date1 );
DateTime end = new DateTime(date2);
int days = Days.daysBetween(start, end).getDays();
System.out.println("Date difference: " + days);
输出:日期差:0
【问题讨论】:
-
如果您使用的是您引用的代码示例,您应该注意,对于您的输入,它会给出 0 天,因为时差小于一整天,并且会向下取整。
-
在问题描述中添加示例
-
@Roy 我需要天数差异而不考虑时间。
-
@Ole - 感谢您提供信息!以下方法对我有用: int days = Days.daysBetween(start.toLocalDate(), end.toLocalDate()).getDays();
-
我建议迁移到 JSR310 库。向后移植可用于 java 6+
标签: java date java-7 jodatime date-difference