【问题标题】:How to parse follow date in Java?如何在 Java 中解析关注日期?
【发布时间】:2010-08-15 15:00:22
【问题描述】:

你好,我需要解析这个字符串

2010 年 8 月 15 日星期日下午 3:50 CEST

我就是这样使用SimpleDataFormat的

String date = "Sun, 15 Aug 2010 3:50 pm CEST";
DateFormat formatter = new SimpleDateFormat("EEE, dd MMM yyyy h:mm a Z");
Date d = formatter.parse(date);

但它会引发异常。

你能帮帮我吗?

谢谢

【问题讨论】:

  • 我的水晶球不工作..你能告诉我们你遇到了什么异常吗?

标签: java date format


【解决方案1】:

SimpleDateFormat 对当前设置的Locale 敏感。因此,尝试使用当前格式解析格式时可能会出现问题。对于您的构造函数,它使用Locale.getDefault() 来确定设置。

您可以尝试通过new SimpleDateFormat(pattern, Locale.US) 使用Locale.US 显式创建DateFormat,并验证在这种情况下是否也存在问题。

【讨论】:

    【解决方案2】:

    这段代码:

    try {
        String date = "Sun, 15 Aug 2010 3:50 pm CEST";
        DateFormat formatter = new SimpleDateFormat("EEE, dd MMM yyyy h:mm a Z");
        Date d = formatter.parse(date);
        System.out.println(formatter.format(d));
    } catch (ParseException e) {
        e.printStackTrace();
    }
    

    打印(无一例外):

    Sun, 15 Aug 2010 3:50 PM +0200
    

    所以我猜是你的问题……你得到了什么异常?

    【讨论】:

      【解决方案3】:

      我已经这样解决了

      try {
      DateFormat df = new SimpleDateFormat("EEE, dd MMM yyyy h:mm a", Locale.US);
      Date d = df.parse(date);
      bean.setDate(d);
      

      } 捕获(异常 e) { Logger.error("解析数据时出错"); }

      从模式中删除 Z 并使用 Locale.US。

      谢谢

      【讨论】:

        【解决方案4】:

        我的代码是

        try {
            DateFormat df = new SimpleDateFormat("EEE, dd MMM yyyy h:mm a Z", Locale.US);
            Date d = df.parse(date);
            bean.setDate(d);
        }
        catch (Exception e)
        {
            Logger.error("Error while parsing data");
        }
        

        例外是

        java.text.ParseException: Unparseable date: Mon, 16 Aug 2010 2:20 pm CEST
        

        谢谢

        【讨论】:

        • 我无法重现您的问题。在 JDK 1.5.0_14 上对我来说很好。您的输入等于“Mon, 16 Aug 2010 2:20 pm CEST”,没有任何额外的空格/字符?
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-10-16
        相关资源
        最近更新 更多