【问题标题】:Unable to parse AM/PM using SimpleDateFormat无法使用 SimpleDateFormat 解析 AM/PM
【发布时间】:2011-12-19 00:19:45
【问题描述】:

我遇到了类似的问题 Unable to parse DateTime-string with AM/PM marker

我什至尝试了该链接中提供的解决方案,但没有帮助。

SimpleDateFormat timingFormat = new SimpleDateFormat("h:mm a", Locale.US);
Date l = timingFormat.parse(time);

但我一直收到 java.text.ParseException:无法解析的日期:“12:34”。 当我进入凌晨 12:34 时

【问题讨论】:

  • timingFormat.setLenient(true);之后有没有试过解析?
  • 我在这里遇到了同样的问题。我们尝试了多种变体,但无法让它解析 AM 或 PM 文本,所以不要使用它,只使用 24 小时制。 “a”或“aa”只能用于格式化日期时间,不能用于解析字符串。

标签: java simpledateformat


【解决方案1】:

等一下。错误说12:34 是不可解析的,而不是12:34 AM。在这种情况下,您的输入法是读取第一个单词直到空格并忽略输入的“AM”部分。更正您的输入法,以便它读取整个输入流/字符串,然后它应该正确解析。

【讨论】:

    【解决方案2】:
    public static void main(String[] args) throws ParseException {
        SimpleDateFormat timingFormat = new SimpleDateFormat("h:mm a", Locale.US);
        Date l = timingFormat.parse("12:34 AM");
        System.out.println(l.toString());
    }
    

    上面的代码运行良好。这意味着您传递给 parse 方法的输入不是您所期望的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-07-21
      • 2018-05-19
      • 1970-01-01
      • 2011-04-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多