Java7

时间:2018-09-11 04:48:08

标签: java date java-7 jodatime date-difference

我的日期格式为: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

1 个答案:

答案 0 :(得分:2)

Joda-Time仅计算整天,换句话说,将差值截断为整数。因此,在您的值之间相隔19个小时多一点时,它算作0天。如果要忽略日期的时间部分,请先转换为LocalDate

    int days = Days.daysBetween(start.toLocalDate(), end.toLocalDate()).getDays();

(感谢您自己在注释中提供具体的代码。既然您说过有效,我认为应该得到答复。)