I don't think it's possible to parse any kind of date without specifying its format first but a good idea to make your parsing more extensible, would be to create an array or list of SimpleDateFormat objects and iterate all of them, until one of them parses the string successfully.
In your case:
private final static SimpleDateFormat[] formats = new SimpleDateFormat[] {
new SimpleDateFormat("yyyy-MM-dd", Locale.US),
new SimpleDateFormat("--MM-dd", Locale.US)
};
Calendar signCal = Calendar.getInstance();
boolean dateParsedSuccessfully = false;
for(SimpleDateFormat format : formats) {
try {
signCal.setTime(format.parse(birthday));
dateParsedSuccessfully = true;
break;
} catch (ParseException e) {
}
}
if(!dateParsedSuccessfully) {
throw new SomeKindOfException("Can't parse birthdate");
}
So each time you want to add a new date format you have just to add a new object to the array.
Keep in mind that the "Jan 1, 1970" format is the default format of Date#toString, it's not necessarily the format used by Skype.