如何确定两个时间点之间是否有一个午夜。也就是说,这两个点在不同的相邻日期??
我会很容易存储 UNIX 时间戳并检查 24 小时的差异,但我需要的是在检查 2 个时间戳之间时,例如星期一 23:00 和星期二 02:00,差异必须是一天,与星期一 10:00 之间相同和周二 19:00h
我终于选择了@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;
}
我总是使用joda在 Java 中进行日期/时间操作。使用 joda,您的代码是:
if (Days.daysBetween(new DateTime(myFirstJavaUtilDateOrMiliseconds), new DateTime(mySecondJavaUtilDateOrMiliseconds)).getDays()) == 1) { // 1 day difference
} else { // not so much
}
当然,如果您使用的是 JDK 日期类并且不能使用 Joda,请接受不同的答案。