日期解析异常?

时间:2017-12-12 14:57:00

标签: android date

我正在尝试以这种格式解析日期" dd-MM-yyyy HH:mm"。我提供的输入是" 12-12-17 06:00和#34;但它给了我一个例外。

这是代码,

final public static SimpleDateFormat FRMT_2_DD_MM_YY_HH_MM=new SimpleDateFormat("dd-MM-yy HH:mm", Locale.US);

public static Date parseDateInFormat_Date()
    {

 try {
           return FRMT_2_DD_MM_YY_HH_MM.parse("12-12-17 06:00")
        } catch (ParseException e) {
            return null;

        }

}

这在尝试解析时给了我一个ParseException。这就是我所尝试的。

  1. final public static SimpleDateFormat FRMT_2_DD_MM_YY_HH_MM=new SimpleDateFormat("dd-MM-yy HH:mm", Locale.getDefault());

  2. final public static SimpleDateFormat FRMT_2_DD_MM_YY_HH_MM=new SimpleDateFormat("dd-MM-yy HH:mm");

  3. 他们两人都提出了一个解析异常,我不知道为什么?

4 个答案:

答案 0 :(得分:0)

这段代码对我有用。试试吧。

SimpleDateFormat format = new SimpleDateFormat("dd-MM-yy hh:mm", Locale.US);
    try {
        Log.d(TAG, "date: "+format.parse("12-12-17 12:50"));
    } catch (ParseException e) {
        e.printStackTrace();
        Log.d(TAG, "date:Exception ");
    }

输出:

date: Tue Dec 12 00:50:00 EST 2017

答案 1 :(得分:0)

您的方法似乎很好,尝试使用e.getPrintStackTrace()打印完整的堆栈跟踪,以查看导致ParseException的传递字符串中的确切位置。 准备进一步帮助。

答案 2 :(得分:0)

您的代码看起来很好。我刚刚对它进行了测试,效果很好。

1-你在return FRMT_2_DD_MM_YY_HH_MM.parse("12-12-17 06:00");

的末尾忘了一个分号

2-由于没有附加异常堆栈跟踪,我怀疑的问题是您正在使用的导入。

这是你应该使用的:

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Locale;

答案 3 :(得分:0)

这是解决方案,返回FRMT_2_DD_MM_YY_HH_MM.parse是问题的根本原因,不知道为什么虽然这很好。

public static Date parseDateInFormat_Date()
    {
Date date;

 try {
           date= FRMT_2_DD_MM_YY_HH_MM.parse("12-12-17 06:00")
        } catch (ParseException e) {
            date=null;

        }

return date;
}