Is there a reason why you don't want to do it with a SimpleDateFormat object as I proposed ?
Months in the
Java Calendar class are 0-based: 0 = January, 1 = February, ..., 7 = August, ..., 11 = December. So if you do cal.get(Calendar.MONTH), you'll get a number from 0 to 11, not 1 to 12. You need to add 1 yourself if you want to interpret this as a regular month number yourself.