Проблема на самом деле в том, что вы используете DD
- это означает день в году
Правильный путь:
println new Date().parse("dd-MMM-yyyy", '22-MAR-2011')
Быстрый совет при форматировании дат, попробуйте использовать обратное и посмотреть, чтовыходит:
println new Date().format("dd-MMM-yyyy")
Groovy использует SimpleDateFormat под капотом, но это не так важно, поскольку большинство библиотек дат используют одинаковые соглашения о формате.