時分秒の加算/減算にCalendarクラスを使うのはもったいない?

スポンサーリンク

単に、時分秒の加算/減算ならば、Calendarクラスを使わないようにしています。
というのもCalendarオブジェクトの生成には、大きなコストがかかる(らしい)ので、使わなくて済むならば、使わない方向で。


例えば、現在時刻+3時間をあらわすDateオブジェクトを作るって場合、、
Calendarクラスを使うと、下記のようになると思いますが、

Calendar calendar = Calendar.getInstance();
calendar.add(Calendar.HOUR, 3);
Date date = calendar.getTime();


Calendarクラスを使わない場合は、下記のように書きます。

Date date = new Date(System.currentTimeMillis() + 1000 * 60 * 60 * 3);

#実際は、DateUtil#addHour(long time, int hour)みたいな感じでユーティリティメソッドを作ったりします


来年の今日は?とか、次週といったように、年や月、週が入ってきたときは、Calendarクラスを使わないと面倒(可読性も落ちそう)なのでCalendarクラスを使ってます。