如何确定两个时间点之间是否存在一个午夜。也就是说,这两个点在不同的相邻日子里?
我很容易存储UNIX时间戳并检查24h差异,但我需要的是在2个时间戳之间进行检查,例如周一23:00h和周二02:00h,差异必须是一天,与周一之间相同10:00h和周二19:00h
答案 0 :(得分:1)
我总是使用joda在Java中进行日期/时间操作。使用joda,您的代码是:
if (Days.daysBetween(new DateTime(myFirstJavaUtilDateOrMiliseconds), new DateTime(mySecondJavaUtilDateOrMiliseconds)).getDays()) == 1) { // 1 day difference
} else { // not so much
}
当然,如果您使用的是JDK日期类并且无法使用Joda,请接受不同的答案。
答案 1 :(得分:1)
我终于选择了@AlexWien的回答,由于某种原因已被删除。
@ hd1 joda很不错,但这是一个Android项目,而且库太重了,我只会在这里使用它。
这就是我选择GregorianCalendar方法的原因:
public static int daysApart(long first, long second){
GregorianCalendar gc=new GregorianCalendar(TimeZone.getTimeZone("UTC"));
gc.setTimeInMillis(first);
int day1=gc.get(GregorianCalendar.DAY_OF_YEAR);
gc.setTimeInMillis(second);
int day2=gc.get(GregorianCalendar.DAY_OF_YEAR);
return day2-day1;
}