Hier ist ein Beispiel, das mit Ihren Testfällen funktioniert:
import java.text.SimpleDateFormat;
import java.util.Date;
public class StringToDateExample1 {
public static void main(String[] args)throws Exception {
String sDate1="20200913204839";
Date date1=new SimpleDateFormat("yyyyMMddhhmmss").parse(sDate1);
System.out.println(date1);
}
}
Mit Testfall 20200913204839
es gibt zurück:
Sun Sep 13 20:48:39 UTC 2020
Folgendes bedeuten die Zeichen im SimpleDateFormat:
yyyy
steht für ein Jahr (Beispiel:2020)
MM
bedeutet einen Monat (Beispiel:Juli, August)
dd
bedeutet einen Tag in einem Monat (Beispiel:15)
HH
bedeutet eine Stunde an einem Tag (Beispiel:20)
mm
und ss
bedeuten Minuten bzw. Sekunden (Beispiel:52:34)
Es muss kein Datum sein - nur ein String funktioniert gut.
Und ja - die Verwendung von SimpleDateFormat funktioniert einwandfrei.
BEARBEITEN:Spezifische Formatierung
Ich habe es speziell für Ihren Fall formatiert:
import java.text.SimpleDateFormat;
import java.util.Date;
public class StringToDateExample1 {
public static void main(String[] args)throws Exception {
String sDate1="20200913204839";
Date date1=new SimpleDateFormat("yyyyMMddhhmmss").parse(sDate1);
String formatted = new SimpleDateFormat("dd-EE-yyyy hh:mm:ss").format(date1);
System.out.println(formatted);
}
}
Zuerst parsen wir den String in ein Datum, aus dem wir formatieren können.
Ein Testfall 20200913204839
gibt zurück:
13-Sun-2020 08:48:39