java.lang.IllegalArgumentException: 解析错误 - 日期格式错误?

3

我正在使用变量CURRENT_DATE将当前日期存储在SQLite数据库中。我发现在其中使用的日期格式是yyyy-mm-dd。我想在代码中解析日期,但我遇到了以下错误:

java.lang.IllegalArgumentException: Parse error: at java.util.Date.parseError

下面是代码:

    SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-mm-dd");
    String formattedTaskDate = dateFormat.format(new Date(dateStoredAsStringFetchedFromDB));
    Date d = new Date(formattedTaskDate);

首先,我从数据库中获取日期,并将其存储在一个字符串变量中(因为在SQLite中日期存储为TEXT),然后执行上述操作,但我遇到了parseError异常。

我该如何解决这个问题?


1
请注意我的更新答案。 - Cytus
3个回答

2

看起来你的日期格式有误。请注意,大写字母M表示月份,小写字母m表示分钟。要解决这个问题,只需将你的yyyy-mm-dd更改为yyy-MM-dd

如果你将来想要改变这个格式,可以像这样操作:

try {
     DateFormat inputFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
     Date input = inputFormat.parse(date);
     DateFormat outputFormat = new SimpleDateFormat(" EEEE MMMM-dd-yyyy ", Locale.ENGLISH);
     String finaldate = outputFormat.format(input);
            txtDate.setText(finaldate); <-- just an example of displaying the date 
     }catch (Exception ex) {
            Alerts.CatchError(getBaseContext(), ex.toString());
     }

这将显示最初存储的日期 2015-04-25 12:08:34( yyyy-MM-dd HH:mm:ss )为 Friday April-25-2015。当然,您也可以根据自己的喜好进行更改,只需参考 Ankit 友情提供的文档即可。


1
格式错误,请尝试这个:

格式不正确,请尝试以下内容:

String string = dateStoredAsStringFetchedFromDB;
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date date = format.parse(string);

文档


0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接