Это работает лучше, оказывается, у DateTime есть метод toInterval, который делает именно это (вычисляет с полуночи до полуночи). В моих тестах, похоже, нет проблем с переходами DST.
DateTime now = new DateTime();
DateTime startOfToday = now.toDateMidnight().toInterval().getStart();
DateTime endOfToday = now.toDateMidnight().toInterval().getEnd();
System.out.println( "\n" + now + "\n" + startOfToday + "\n" + endOfToday + "\n" );
JODA выглядит очень хорошо продуманным.