JODA - это путь, если у вас есть серьезные потребности в календаре, по крайней мере, до тех пор, пока JSR-310 не попадет в JDK (возможно, 1,7, если не 1,8).
При этом есть несколько вещей, которые можно сделать, чтобы сделать этот код немного приятнее.
import static java.util.Calendar.*;
...
private static final List<Integer> TIME_FIELDS =
Arrays.asList(HOUR_OF_DAY, MINUTE, SECOND, MILLISECOND);
private Date day(Date creation) {
Calendar c = getInstance();
c.setTime(creation);
for(int field : TIME_FIELDS) c.set(field, 0);
return c.getTime();
}
Это не принесет никаких наград за исполнение. Вы можете сделать стандарт для цикла, основанного на определенных значениях поля (класс Calendar имеет поле FIELD_COUNT, которое подразумевает, что вы можете сделать что-то подобное), но это может привести к проблемам во всех реализациях JDK и между версиями.