Hier is een voorbeeld dat werkt met uw testgevallen:
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);
}
}
Met testcase 20200913204839
het keert terug:
Sun Sep 13 20:48:39 UTC 2020
Dit is wat de tekens in SimpleDateFormat betekenen:
yyyy
betekent een jaar (voorbeeld:2020)
MM
betekent een maand (voorbeeld:juli, augustus)
dd
betekent een dag in een maand (voorbeeld:15)
HH
betekent een uur in een dag (voorbeeld:20)
mm
en ss
betekenen respectievelijk minuten en seconden (voorbeeld:52:34)
Het hoeft geen datum te zijn - alleen een string werkt prima.
En ja - het gebruik van SimpleDateFormat werkt prima.
BEWERK:specifieke opmaak
Ik heb het speciaal voor jouw geval geformatteerd:
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);
}
}
We ontleden eerst de String in een datum, van waaruit we kunnen formatteren.
Een testcase 20200913204839
retourneert:
13-Sun-2020 08:48:39