Joda时间内两个日期之间的天数

我如何找到两个之间的天数差异Joda TimeDateTime实例?
对于“天数差异”,我的意思是,如果开始日期是周一,结束日期是周二,则无论开始日期和结束日期的时/分/秒是多少,我都希望返回值为1

Days.daysBetween(开始,结束)。getDays()如果开始在晚上,结束在早上,则为0

我对其他日期字段也有同样的问题,所以我希望有一种通用的方法来“忽略”不太重要的字段

换句话说,2月到3月4日之间的月份也将是1,14:45到15:12之间的时间也将是1。但是,14:01和14:55之间的时差为0

令人烦恼的是,WithTimeatStartoDay的答案是错误的,但只是偶尔会有错误。你想要:

Days.Days之间(start.toLocalDate(),end.toLocalDate()).getDays()

事实证明,“午夜/一天的开始”有时意味着凌晨1点(夏令时在某些地方以这种方式发生),这两天之间的时间不能正确处理

//2013年10月20日上午5点至21日下午1点,巴西
DateTimeZone巴西=DateTimeZone.forID(“美国/圣保罗”);
日期时间开始=新的日期时间(2013、10、20、5、0、0、巴西);
DateTime end=新的日期时间(2013、10、21、13、0、0,巴西);
System.out.println(两天之间的天数)(start.withTimeAtStartOfDay(),
end.withTimeAtStartOfDay()).getDays();
//打印0
System.out.println(在(start.toLocalDate()之间的天数),
end.toLocalDate()).getDays();
//印刷品1

通过LocalDate避开整个问题

发表评论