我的日期格式为:EEE, dd MMM yyyy HH:mm:ss Z
例如,
日期1:2018年9月10日星期一8: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 :(得分:2)
Joda-Time仅计算整天,换句话说,将差值截断为整数。因此,在您的值之间相隔19个小时多一点时,它算作0天。如果要忽略日期的时间部分,请先转换为LocalDate
:
int days = Days.daysBetween(start.toLocalDate(), end.toLocalDate()).getDays();
(感谢您自己在注释中提供具体的代码。既然您说过有效,我认为应该得到答复。)