I'm fetching vCards by CardDAV and all birthdays (BDAY) were coming out wrong. The date in the vCard is:
but it was parsed (in the builder) as:
After hours of debugging, I found why: I had relaxed parsing on:
After I removed that, bingo the birthday date comes out correctly.
I have fixed this by setting the relaxed date format to be non-lenient in the ical4j DateTime class. This is included in the latest release (1.0.4). I will also release a new version of ical4j-vcard shortly, but in the meantime you should be able to just drop in the ical4j-1.0.4 jar and it will hopefully fix the issue.