【Java】Calendarクラスを使わずにDateクラスで日時計算を行う

Calendarクラスを利用せず、Dateクラス単体で日時計算を行う場合は以下のように書きます。

import java.util.Date;

public class SampleDate {
    public static void main(String[] args) {

        // 1時間前の日時を出力(1000msec * 60秒 * 60分)
        System.out.println(new Date(System.currentTimeMillis() - 1000 * 60 * 60).toString());

        // 24時間前の日時を出力(1000msec * 60秒 * 60分 * 24時間)
        System.out.println(new Date(System.currentTimeMillis() - 1000 * 60 * 60 * 24).toString());

    }
}

Calenderの生成はDateの生成に比べパフォーマンスが悪い(と言われている)ので、1時間前などのちょっとした日時計算の場合はDateクラス単体で処理を行う方が無難です。

ただし月単位や年単位など、ある程度複雑な日時計算が要求される場合は、可読性のためにもCalenderを利用するのが良さそうです。