Ето един пример, който работи с вашите тестови случаи:
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);
}
}
С тестов случай 20200913204839
връща:
Sun Sep 13 20:48:39 UTC 2020
Ето какво означават знаците в SimpleDateFormat:
yyyy
означава година (Пример:2020)
MM
означава месец (Пример:юли, август)
dd
означава ден в месеца (Пример:15)
HH
означава час в деня (Пример:20)
mm
и ss
означава съответно минути и секунди (Пример:52:34)
Не е задължително да е дата - просто низ работи добре.
И да - използването на SimpleDateFormat работи добре.
РЕДАКТИРАНЕ:Специфично форматиране
Форматирах го специално за вашия случай:
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);
}
}
Първо анализираме низа в дата, от която можем да форматираме.
Тестов случай 20200913204839
връща:
13-Sun-2020 08:48:39