次の形式で JSON から解析された日付オブジェクトがあります。
String date = getJsonDateFromServer();
Date result = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssZ").parse(date);
しかし、私は時間の部分だけに興味があります(月、年、日などではありません)。私の質問は次のとおりです。タイムゾーン情報を失うことなく、日付部分 (月、年、日) を正しく置き換えるにはどうすればよいですか?
私が最終的にやりたいことは次のとおりです。
(1) 2 つの日付を解析する (日付情報なし)。開始時間と終了時間
(2) 'dw' が (1) の start と end で定義された時間の間にある場合は、別の日付 'dw' (日付情報を含む) を確認します。
例えば:
Date start = parse(18:00 +02:00);
Date end = parse(20:00 +02:00);
Date dw=new Date();
boolean inBetween = dw>= start && dw <= end;
これを行う方法?
/UPDATE: テスト目的で次のように実装しました。
public boolean isActiveOn(Date date) {
Calendar toCheck = Calendar.getInstance();
toCheck.setTime(date);
Calendar cal_start = Calendar.getInstance();
cal_start.setTime(this.time_begin);
cal_start.set(toCheck.get(Calendar.YEAR), toCheck.get(Calendar.MONTH),
toCheck.get(Calendar.DAY_OF_MONTH));
Calendar cal_end = Calendar.getInstance();
cal_end.setTime(this.time_end);
cal_end.set(toCheck.get(Calendar.YEAR), toCheck.get(Calendar.MONTH),
toCheck.get(Calendar.DAY_OF_MONTH));
boolean after_start = toCheck.after(cal_start);
boolean before_end = toCheck.before(cal_end);
return after_start && before_end;
}
しかし、 this.time_begin 、 this.time_end 、および date に異なるタイムゾーンが設定されていると、問題が発生することはありませんか?