Joda-Time で日付操作

commns-lang3 が便利だったけど Joda-Time も便利なので

// 月初を取得
DateTime dt = DateTime.now().dayOfMonth().withMinimumValue().dayOfMonth().roundFloorCopy();
System.out.println(dt);

// 月末を取得
dt = DateTime.now().dayOfMonth().withMaximumValue().dayOfMonth().roundFloorCopy();
System.out.println(dt);

// 年末を取得
dt = DateTime.now().dayOfYear().withMaximumValue().hourOfDay().withMaximumValue().minuteOfHour()
        .withMaximumValue().secondOfMinute().withMaximumValue();
System.out.println(dt);

// 今日の8時半を取得
dt = DateTime.now().dayOfMonth().roundFloorCopy().withHourOfDay(8).withMinuteOfHour(30);
System.out.println(dt);

// 今日の23時55分を取得
dt = DateTime.now().dayOfMonth().roundFloorCopy().withHourOfDay(23).withMinuteOfHour(55);
System.out.println(dt);

// 分以下を切り捨て
dt = DateTime.now().hourOfDay().roundFloorCopy();
System.out.println(dt);

// 時間以下を切り捨て
dt = DateTime.now().dayOfMonth().roundFloorCopy();
System.out.println(dt);