偏移量 0 处的不可解析日期)



我一直收到这个异常,我不知道可能出了什么问题。有人可以帮我吗?下面的代码是解析项目(日期/时间戳),然后在列表视图中显示它们。我知道它们是字符串,但它们需要添加到列表视图中。

java.text.ParseException: Unparseable date: "9 minutes ago" (at offset 0)

public static String formatDate(final long dt) {
    return formatDate(new Date(dt));
}
public static String formatDate(final Date date) {
    final DateFormat df = DateFormat.getDateTimeInstance(DateFormat.SHORT,
            DateFormat.SHORT);
    return df.format(date);
}
public static final Date parseDate(final String date) throws ParseException {
    final String pattern = "EEE MMM dd, yyyy h:mm a";
    return parseDate(date, pattern);
}
public static final Date parseDate(final String date, final String pattern)
        throws ParseException {
    final SimpleDateFormat format = new SimpleDateFormat(pattern, Locale.US);
    return format.parse(date);
}

在列表视图中添加项的代码:

private String getDateString(final Date d) {
    if (d == null)
        return "";
    int[] elements1, elements2;
    elements1 = getDateElements(System.currentTimeMillis());
    elements2 = getDateElements(d.getTime());
    if (elements1[0] == elements2[0] && elements1[1] == elements2[1]) {
        if (elements1[2] == elements2[2])
            return "Today";
        final Calendar c = Calendar.getInstance();
        c.setTimeInMillis(System.currentTimeMillis());
        c.add(Calendar.DAY_OF_MONTH, -1);
        elements1 = getDateElements(c.getTimeInMillis());
        if (elements1[2] == elements2[2])
            return "Yesterday";
    }
    return Util.formatDate(d);
}
private int[] getDateElements(final long d) {
    final int[] elements = new int[3];
    final Calendar c = Calendar.getInstance();
    c.setTimeInMillis(d);
    elements[0] = c.get(Calendar.YEAR);
    elements[1] = c.get(Calendar.MONTH);
    elements[2] = c.get(Calendar.DAY_OF_MONTH);
    return elements;
}

您遇到的错误消息很清楚"9 分钟前"字符串无法解析为日期时间。

  • Java 日期/时间解析和格式化
  • 预定义的日期/时间格式化程序

您将需要额外的代码才能以这种格式解析日期/时间。

您可以尝试使用Natty Date Parser

最新更新