String
カスタム形式の2 つの日付を互いにチェックする必要があります"dd.MM.yyyy, HH:mm:ss"
。どうすれば古いものを手に入れることができますか?
例えば :
String date1 = "05.02.2013, 13:38:14";
String date2 = "05.02.2013, 09:38:14";
date2
比較して取得する方法はありますか?
どのように進めればよいかを簡単に説明します。Date
最初にこれらの日付文字列をオブジェクトに解析する必要があります。そのために使用DateFormat#parse(String)
します。これらの文字列からオブジェクトを取得したら、メソッドDate
を使用してそれらのオブジェクトを比較できますDate#compareTo(Date)
。
すでに日付形式があり、それを使用してSimpleDateFormat
、作成されたオブジェクトを比較Date
します。
ここでデモを参照してください。サンプルコード:
public static void main(String[] args) Exception {
String date1 = "05.02.2013, 13:38:14";
String date2 = "05.02.2013, 09:38:14";
System.out.println(getOlder(date1, date2)); // 05.02.2013, 13:38:14
System.out.println(getOlder(date2, date1)); // 05.02.2013, 13:38:14
}
public static String getOlder(String one, String two) throws ParseException {
Date dateOne = new SimpleDateFormat("dd.MM.yyyy, HH:mm:ss").parse(one);
Date dateTwo = new SimpleDateFormat("dd.MM.yyyy, HH:mm:ss").parse(two);
if (dateOne.compareTo(dateTwo) > -1) {
return one; // or return dateOne;
}
return two; // or return dateTwo;
}
もちろん、上記のメソッドは、入力された最も古い日付文字列を返します。Date
代わりにオブジェクトを返すように変更できます (コメントを参照) 。
日付と時刻の計算は常に難しいので、これには適切なクラスを使用することを強くお勧めします。これについては Joda Timeを確認することをお勧めします。
それらのクラスは、必要な結果を提供するdaysBetweenなどのメソッドを提供します。
もちろん、最初にこの日付と時刻を表すオブジェクトを取得するには、文字列を解析する必要があります。