我得到两次(格式为HH:mm aa)说下午6:00到下午5:00。我需要一些通用和最短的方法来比较这两次。
例如: -
说我比较下午4点到晚上7点,然后我应该到下午4点>晚上7点,因为我的开始时间是下午6点,结束时间是下午5点
请帮忙。
答案 0 :(得分:1)
// Per the JavaDoc:
// the value 0 if the argument Date is equal to this Date; a value
// less than 0 if this
// Date is before the Date argument; and a value greater
// than 0 if this Date is after
// the Date argument.
if (startDate.compareTo(endDate) < 0)
{
// before
}
else if (startDate.compareTo(endDate) == 0)
{
// same
}
else if (startDate.compareTo(endDate) > 0)
{
// after
}
else if (startDate.compareTo(firstDate) > 0 && startDate.compareTo(secondDate) < 0)
{
// between
}
根据需要插入您的条件。
答案 1 :(得分:1)
Java中内置的java.util.Date
和.Calendar
类非常麻烦。而是在Java 8中使用Joda-Time库或新的java.time包(受Joda-Time启发,由JSR 310定义)。
Joda-Time内置了对Java Comparator的支持。 Joda-Time提供了自己的比较方法:isBefore
,isBeforeNow
,isAfter
,isAfterNow
,isEqual
。
DateTimeZone timeZone = DateTimeZone.forID( "Europe/Paris" );
DateTime now = new DateTime( timeZone );
DateTime yesterday = now.minusDays( 1 );
boolean isYesterdayBeforeNow = yesterday.isBefore( now ); // TRUE.
在java.time包中,ZonedDateTime
提供isBefore
和isAfter
等方法。
答案 2 :(得分:0)
Date有before和after方法,可以是compared to each other。
所以你可以这样做:
if(todayDate.after(historyDate) && todayDate.before(futureDate)) {
// In between
}