Date
まず、文字列をオブジェクト インスタンスに解析する必要があります。DateFormat
派生クラスを使用してこれを行うことができます(つまりSimpleDateFormat
)。
次に、両方の日付のミリ秒表現 ( で取得) を使用して比較を行うか、またはgetTime()
を使用して単純に比較できます。after(Date date)
before(Date date)
より複雑な操作が必要な場合は、Calendar
クラスを使用する必要があります。
さらに、プロジェクトが日付でうまく機能する場合は、Joda Timeを使用することをお勧めします
編集(コメントへの応答):
クラスを使用Calendar
すると、このようになります。まず、7:00 の日付のカレンダー インスタンスが必要です。
Calendar cal1 = Calendar.getInstance();
cal1.set(Calendar.DATE, 12); // The day of month you are working with
cal1.set(Calendar.MONTH, 7); // The month of the year
cal1.set(Calendar.YEAR, 2012); // The year
cal1.set(Calendar.HOUR_OF_DAY, 7); // Hour in 24-hours fashion
cal1.set(Calendar.MINUTE, 0); // self-explanatory
cal1.set(Calendar.SECOND, 0);
Date shiftStart = cal1.getTime();
次に、シフトの終わりに同じことを行います。
Calendar cal2 = Calendar.getInstance();
cal2.set( ... ); // Repeat almost every field from previous snippet
cal2.set(Calendar.HOUR_OF_DAY, 15); // Hour in 24-hours fashion
Date shiftEnd = cal2.getTime();
次に、比較したい日付がそれらの間にあることを確認する必要があります。
Date myDate = ... // the date you want to compare
boolean checkShift = myDate.after(shiftStart) && myDate.before(shiftEnd);
とにかく、すでに述べたように、プロジェクトで日付を頻繁に使用する場合は、Joda Time を使用します。これにより、日付の処理が大幅に容易になります。