Her er et eksempel, der fungerer med dine testcases:
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 testcase 20200913204839
det returnerer:
Sun Sep 13 20:48:39 UTC 2020
Her er, hvad tegnene i SimpleDateFormat betyder:
yyyy
betyder et år (Eksempel:2020)
MM
betyder en måned (eksempel:juli, august)
dd
betyder en dag i en måned (eksempel:15)
HH
betyder en time på en dag (eksempel:20)
mm
og ss
angiver henholdsvis minutter og sekunder (Eksempel:52:34)
Det behøver ikke at være en dato - bare en streng fungerer fint.
Og ja - at bruge SimpleDateFormat fungerer fint.
EDIT:Specifik formatering
Jeg har formateret det specifikt til din sag:
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 parser først strengen til en dato, hvorfra vi kan formatere.
En testcase 20200913204839
returnerer:
13-Sun-2020 08:48:39