0

如何确定两个时间点之间是否有一个午夜。也就是说,这两个点在不同的相邻日期??

我会很容易存储 UNIX 时间戳并检查 24 小时的差异,但我需要的是在检查 2 个时间戳之间时,例如星期一 23:00 和星期二 02:00,差异必须是一天,与星期一 10:00 之间相同和周二 19:00h

4

2 回答 2

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;
}
于 2013-06-18T15:33:19.630 回答
1

我总是使用joda在 Java 中进行日期/时间操作。使用 joda,您的代码是:

if (Days.daysBetween(new DateTime(myFirstJavaUtilDateOrMiliseconds), new DateTime(mySecondJavaUtilDateOrMiliseconds)).getDays()) == 1) { // 1 day difference
} else { // not so much
}

当然,如果您使用的是 JDK 日期类并且不能使用 Joda,请接受不同的答案。

于 2013-06-17T20:23:25.753 回答