7
、あなたが例えば、本当にクールなものを行うことができます:Joda時間:DateTimeComparator。 Java 8 Time Apiに似ているのは何ですか?ジョダ時間とともに
package temp;
import org.joda.time.DateTime;
import org.joda.time.DateTimeComparator;
import org.joda.time.DateTimeFieldType;
public class TestDateTimeComparator {
public static void main(String[] args) {
//Two DateTime instances which have same month, date, and hour
//but different year, minutes and seconds
DateTime d1 = new DateTime(2001,05,12,7,0,0);
DateTime d2 = new DateTime(2014,05,12,7,30,45);
//Define the lower limit to be hour and upper limit to be month
DateTimeFieldType lowerLimit = DateTimeFieldType.hourOfDay();
DateTimeFieldType upperLimit = DateTimeFieldType.monthOfYear();
//Because of the upper and lower limits , the comparator shall only consider only those sub-elements
//within the lower and upper limits i.e.month, day and hour
//It shall ignore those sub-elements outside the lower and upper limits: i.e year, minute and second
DateTimeComparator dateTimeComparator = DateTimeComparator.getInstance(lowerLimit,upperLimit);
int result = dateTimeComparator.compare(d1, d2);
switch (result) {
case -1:
System.out.println("d1 is less than d2");
break;
case 0:
System.out.println("d1 is equal to d2");
break;
case 1:
System.out.println("d1 is greater than d2");
break;
default:
break;
}
}
}
私はこの例hereを見つけました。
私はJava Time APIを使用して同じ手順を実行したいと思いますが、残念なことに、私には類似のコンパレータは表示されません。
特定の日付と時刻のフィールドのみを比較することはできますが、Java Time APIでは他のフィールドを比較することはできますか?
'Comparator.comparing(LocalDateTime :: getHour) 'を使用してコンパレータを作成し、この場合の時間だけを比較します。しかし、2つのフィールド間のすべてのクロノフィールドを比較するには、mmh ... – Tunaki