Ich muss meine Eingabedatenfolge formatieren.Datumsformatkonvertierung, die zusätzliches Jahr hinzufügt
Eingangsdatum string: 28-01-1983(dd-MM-yyyy)
Erwartet Datum string: 1983-01-28 (yyyy-MM-dd)
Ich habe unten Programm verwendet. Aber ich bekomme keine korrekte Ausgabe.
public static String formateDate(String oldFormat, String newFormat, String date) {
final String OLD_FORMAT = oldFormat;
final String NEW_FORMAT = newFormat;
String oldDateString = date;
String newDateString = null;
try {
SimpleDateFormat sdf = new SimpleDateFormat(OLD_FORMAT);
Date d = sdf.parse(oldDateString);
sdf.applyPattern(NEW_FORMAT);
newDateString = sdf.format(d);
}
catch (ParseException e) {
e.printStackTrace();
}
return newDateString;
}
Aufruf der Methode:
public static void main(String[] args) {
String formatDob = formateDate("MM-dd-yyyy", "yyyy-dd-MM", "28-01-1983");
System.out.println("Formated DOB:"+formatDob);
}
Gerade jetzt ich bin immer Ausgang: Formated DOB:1985-01-04
Warum meinen Code produzieren falsch ausgegeben? Ich bin mit JDK 1.7
Das alte Format sollte 'TT-MM-JJJJ' lauten. Es gibt keinen Monat 28 –