SystemUtils
Dateクラスの派生クラスを作ろうかとも思ったけど、こっちのほうが使い回しがきくかなぁと。
public final class SystemUtils { private static long offsetCurrentTimeMillis; private static long fixCurrentTimeMillis; private SystemUtils() {} /** * {@link System#currentTimeMillis()}の代替メソッド。<br/> * テストなどで一時的にシステム日付を変更したい場合に使用する。<br/> * fixCurrentTimeMillisがゼロでなければその値を返す。<br/> * fixCurrentTimeMillisがゼロであればシステムの現在日時にoffsetCurrentTimeMillisを足した値を返す。<br/> * @return */ public static long currentTimeMillis() { return fixCurrentTimeMillis != 0 ? fixCurrentTimeMillis : System.currentTimeMillis() + offsetCurrentTimeMillis; } /** * システムの現在日時からのオフセットミリ秒 * @param offsetCurrentTimeMillis */ public static void setOffsetCurrentTimeMillis(long offsetCurrentTimeMillis) { SystemUtils.offsetCurrentTimeMillis = offsetCurrentTimeMillis; } /** * システムの現在日時からのオフセットミリ秒 * @return */ public static long getOffsetCurrentTimeMillis() { return offsetCurrentTimeMillis; } /** * システムの現在日時の代わりに使うミリ秒 * @param fixCurrentTimeMillis */ public static void setFixCurrentTimeMillis(long fixCurrentTimeMillis) { SystemUtils.fixCurrentTimeMillis = fixCurrentTimeMillis; } /** * システムの現在日時の代わりに使うミリ秒 * @return */ public static long getFixCurrentTimeMillis() { return fixCurrentTimeMillis; } }