Joda-Timeで現在時刻をハイジャックする

Joda-Timeは便利ですが、時間を扱うプログラムあるあるとして、「ユニットテストとかどうやって書けばええんや」ってのがあります。

Rubyならtimecopなどを利用するところですが、joda-timesはDateTimeUtilsに自前で現在日時をハイジャックする機能を持っています。

Joda-Time 2.9.9 API

setCurrentMillisFixedsetCurrentMillisDifferenceがそれですね。便利ですね。

(Java8のDate-Time APIが出てきた今joda-timeがどれだけ必要とされるのかというのはまた別の話なんで置いておきます)