包含秒时,simpleDateformat无法解析

时间:2019-03-06 09:24:46

标签: java simpledateformat

我正在以一种特殊的格式获取时间,我想将其转换为另一种格式。以下代码段摘自堆栈溢出答案之一。

SimpleDateFormat origDateFormat = new SimpleDateFormat("dd/MM/yyyy HH:mm");
SimpleDateFormat newDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm");
Date retrivedDate = origDateFormat.parse(origFormat);
return newDateFormat.format(retrivedDate);

只要我的输入日期采用以下格式,该代码格式就可以使用:22/08/2015 14:23。 但是当我尝试几秒钟时,我得到了错误:

  

不可解析的日期:“ 06/03/2019 14:17:25”

SimpleDateFormat origDateFormat = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss");
SimpleDateFormat newDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date retrivedDate = origDateFormat.parse(origFormat);
return newDateFormat.format(retrivedDate);

1 个答案:

答案 0 :(得分:1)

Here's <div class="main"> <div class="box">1</div> <div class="box">2</div> <div class="box">3</div> <div class="box">4</div> </div>方法的javadoc,它的意思是:

  

从给定字符串的开头解析文本以产生日期。   该方法可能不会使用给定字符串的整个文本。

因此,根据文档,您可以使用parse()06/03/2019 14:17:25日期格式解析dd/MM/yyyy HH:mm日期。如果使用不包含秒的格式进行解析,则它将忽略第二部分。下面是工作代码:

dd/MM/yyyy HH:mm:ss

以下是输出:

String date = "06/03/2019 14:17:25";
SimpleDateFormat mmDateFormat = new SimpleDateFormat("dd/MM/yyyy HH:mm");
SimpleDateFormat ssDateFormat = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss");

System.out.println(mmDateFormat.parse(date));
System.out.println(ssDateFormat.parse(date));