Java 转换日期从20160729161455到2016年7月29日16:14:55

Java 转换日期从20160729161455到2016年7月29日16:14:55,java,date,simpledateformat,Java,Date,Simpledateformat,如何将20160729161455转换为29/07/2016 16:14:55 我尝试了以下方法,但无效: SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss"); String dateID = 20160729161455; try { Date date = sdf.parse(dateID); System.out.println(date); } catch (ParseException

如何将
20160729161455
转换为
29/07/2016 16:14:55

我尝试了以下方法,但无效:

SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss");
String dateID = 20160729161455;

try
{
    Date date = sdf.parse(dateID);
    System.out.println(date);
} catch (ParseException ex){}

是的,你能行。您需要2个SimpeDateFormat对象:

SimpleDateFormat dateParser= new SimpleDateFormat("yyyyMMddHHmmss");
SimpleDateFormat dateFormatter = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss");
String dateID = "20160729161455";

try
{
    Date date = dateParser.parse(dateID);
    System.out.println(dateFormatter.format(date));
} catch (ParseException ex){
    ex.printStacktrace();
}
第一步必须解析值,第二步必须将其格式化为新格式。

重点是:解析格式必须与输入匹配。输入中没有空格,因此使用除空格之外的解析器首先无法工作。