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);
Joda-Time で期間操作
commons-lang3 でもいいけど、Joda-Time も便利なので
DateTime dts = new DateTime(); DateTime dte = dts.plusDays(1).plusMillis(1); Interval interval = new Interval(dts, dte); // Duration Duration duration = interval.toDuration(); System.out.println("duration(msec): " + duration.getMillis()); long days = duration.getStandardDays(); System.out.println("duration(day): " + days); long hours = duration.getStandardHours(); System.out.println("duration(hours): " + hours); long miutes = duration.getStandardMinutes(); System.out.println("duration(miutes): " + miutes); long seconds = duration.getStandardSeconds(); System.out.println("duration(seconds): " + seconds);