Обновление: Библиотека Joda-Time сейчас находится в режиме обслуживания, и ее команда советует перейти на классы java.time. Смотрите правильный java.time Ответ Przemek .
Часовой пояс
Другие ответы игнорируют критическую проблему часового пояса.
Joda-Time
Избегайте работы с датой и временем с заведомо хлопотным классом java.util.Date. Вместо этого используйте Joda-Time или java.time. Конвертировать в j.u.Date объекты по мере необходимости для взаимодействия.
DateTimeZone zone = DateTimeZone.forID( "America/Montreal" ) ;
int year = 2015 ;
DateTime firstOfYear = new DateTime( year , DateTimeConstants.JANUARY , 1 , 0 , 0 , zone ) ;
DateTime firstOfNextYear = firstOfYear.plusYears( 1 ) ;
DateTime firstMomentOfLastDayOfYear = firstOfNextYear.minusDays( 1 ) ;
Преобразовать в java.util.Date
Конвертировать в j.u. Дату по мере необходимости.
java.util.Date d = firstOfYear.toDate() ;