Использование заглавной буквы «Y» для отображения даты было представлено в java 7. И, как оказывается, тут есть подводный камень: этот способ отображения может вывести дату в январе не 2014, а 2015 года. К примеру, для даты 2014/29/12 формат «YYYY/MM/dd» выдаст 2015/12/29. Ошибка происходит при выполнении двух условий:
— строка формата содержит Y
— для форматирования передан момент времени (timestamp), соответствующий последней неделе года
В качестве исправления можно посоветовать использование строчной буквы «y». Ну и возможно придется исправить обработчики имен файлов или парсер дат для уже сгенерированных логов.
Ссылки по теме:
http://docs.oracle.com/javase/7/docs/api/java/util/GregorianCalendar.html#week_and_year
http://docs.oracle.com/javase/7/docs/api/java/text/SimpleDateFormat.html#year