字符串到日期(STRICT转换)

时间:2016-07-08 21:56:08

标签: android simpledateformat parseexception

我创建了以下函数,以便将String转换为Date但我需要在执行此操作时捕获任何错误,因此返回null。

   public static Date toDateStarted(String dateStarted) {
        Date dtStarted = null;
        SimpleDateFormat dtFormat = new SimpleDateFormat("MM/dd/yyyy h:mm:ss a");
        try {
            dtStarted = dtFormat.parse(dateStarted);
        } catch (ParseException e) {
            dtStarted = null;
        }
        return dtStarted;
    }

日期dtError = toDateStarted(“错误/ 7/1 4:44:44 PM”);
这按预期返回null。

日期dtWrong = toDateStarted(“2016/7/1 4:44:44 PM”);

这返回错误的日期“Tue Dec 07 16:44:44 EST 168”

在最后一个重要的案例中,输入日期“2016/7/1 4:44:44 PM”格式错误。我正在通过2016/7/1而不是2016年7月1日,因此我认为ParseException将会发生但从未发生过。

在尝试之后... dtStarted =“Tue Dec 07 16:44:44 EST 168”所以我得到了一次返回。

时间是正确的(16:44 =下午4:44)然而日期(年,月,日)完全错误。

如果输入日期(dateStarted)不像SimpleDateFormat模式那样严格,我需要避免任何转换。

我该怎么办?欢迎进行优化。

0 个答案:

没有答案