java.lang.IllegalArgumentException: Bad class: class java.util.GregorianCalendar
A Calendar can't be directly formatted, you need to get the Date from the Calendar, like this:
String formattedDate = dateFormat.format(someDate.getTime());
As one of the answers here: Using GregorianCalendar with SimpleDateFormat says "A SimpleDateFormat, as its name indicates, formats Dates."
So, try this:
String formattedDate = dateFormat.format(someDate.getDate());