Här är ett exempel som fungerar med dina testfall:
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);
}
}
Med testfall 20200913204839
den returnerar:
Sun Sep 13 20:48:39 UTC 2020
Så här betyder tecknen i SimpleDateFormat:
yyyy
betyder ett år (Exempel:2020)
MM
betecknar en månad (exempel:juli, augusti)
dd
betyder en dag i en månad (exempel:15)
HH
betyder en timme på en dag (exempel:20)
mm
och ss
beteckna minuter respektive sekunder (Exempel:52:34)
Det behöver inte vara ett datum - bara en sträng fungerar bra.
Och ja - att använda SimpleDateFormat fungerar alldeles utmärkt.
EDIT:Specifik formatering
Jag har formaterat det specifikt för ditt fall:
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);
}
}
Vi analyserar först strängen till ett datum, från vilket vi kan formatera.
Ett testfall 20200913204839
returnerar:
13-Sun-2020 08:48:39