【问题标题】:ParseException when parsing a date of yyyy-MM-dd format解析 yyyy-MM-dd 格式的日期时出现 ParseException
【发布时间】:2018-07-04 15:59:37
【问题描述】:
private SimpleDateFormat dateFormatMonth = new SimpleDateFormat("dd/MM/yyyy", Locale.getDefault());
Date date = dateFormatMonth.parse(strtdate[0]);

strdate[0] 包含“2018-06-11”

我在这一行遇到了一个无法解析的异常:

java.text.ParseException:无法解析的日期:“2018-06-11”

【问题讨论】:

  • 顺便考虑扔掉长期过时且臭名昭著的麻烦SimpleDateFormat和朋友,并将ThreeTenABP添加到您的Android项目中,以便使用java.time,现代Java日期和时间API .使用起来感觉好多了。
  • LocalDate.parse(strtdate[0])。由于您的日期字符串符合 ISO 8601 标准,因此不需要显式格式化程序。所以没有机会指定不正确的格式。此外,现代的LocalDate 是一个没有时间的日期,显然它似乎更符合您的要求(Date 尽管它的名字是一个时间点)。

标签: java android simpledateformat date-parsing unparseable


【解决方案1】:

您收到错误是因为您使用了错误的模式来解析日期。改用这个:

private SimpleDateFormat dateFormatMonth = new SimpleDateFormat("yyyy-MM-dd", Locale.getDefault());
Date date = dateFormatMonth.parse(strtdate[0]);

假设“06”是月份,“11”是天。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-01-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多