【问题标题】:April 5, 2010, a string must convert to date in Java [closed]2010 年 4 月 5 日,字符串必须在 Java 中转换为日期 [关闭]
【发布时间】:2015-06-02 04:56:41
【问题描述】:

我有这个代码。

 String fromDate = "April 5, 2010";
 DateFormat df = new SimpleDateFormat("dd/MM/yyyy");
 java.util.Date dtt;
 try {
       dtt = df.parse(fromDate);
       java.sql.Date ds = new java.sql.Date(dtt.getTime());
       System.out.println(ds);
    } catch (ParseException ex) {}

但是,这会输出到

java.text.ParseException: Unparseable date: "April 5, 2010"

【问题讨论】:

  • 您说您的字符串具有 dd/MM/yyyy 的格式,但它显然没有。 Here你可以找到所有可能的“字母”格式

标签: java string date


【解决方案1】:

您正在尝试解析一种格式,其中包含空格和逗号的文本格式,该格式指定只有​​数字和/ 作为分隔符。尝试在 SimpleDateFormat 构造函数中使用此字符串:"MMM dd, yyyy"

【讨论】:

    【解决方案2】:

    您将无法使用不同格式的 DateFormat 解析日期。您应该使用 SimpleDateFormat 并指定代表您正在解析的内容的格式字符串。

    DateFormat formatter = new SimpleDateFormat("MMM dd, yyyy");
    Date formatted = formatter.parse(fromDate);
    //Whatever you need to do
    

    【讨论】:

      【解决方案3】:

      SimpleDateFormat 中传递的格式必须与您输入的日期相匹配。输入日期 - “2010 年 4 月 5 日”,因此解析输入日期的格式必须为“MMM dd, yyyy”

      试试这个:

      DateFormat df = new SimpleDateFormat("MMM dd, yyyy");
      

      【讨论】:

      • 请在您的回答中添加一些解释。
      • SimpleDateFormat 中传递的格式必须与您输入的日期相匹配。输入日期 - “2010 年 4 月 5 日”,因此解析输入日期的格式必须为“MMM dd, yyyy”
      • 在回答中提供更多细节很有用。这有助于访问者和评论者。我将您的评论复制到答案中 - 一个示例。
      【解决方案4】:

      您的fromDate(2010 年 4 月 5 日)不是dd/MM/yyyy 格式。

      如果您将 formDate 从 - 更改为 -

      String fromDate = "April 5, 2010";
      

      到 -

      String fromDate = "5-April-10;
      

      那么就可以使用下面的代码sn -p -

      String fromDate = "5-April-10";
      
      formatter = new SimpleDateFormat("dd-MMMM-yy");
      convertedDate = (Date) formatter.parse(fromDate);
      
      System.out.println("Converted Date: " +convertedDate);
      

      【讨论】:

        【解决方案5】:

        希望下面的代码有所帮助

        String fromDate = "April 5, 2010";
                 DateFormat df = new SimpleDateFormat("MMM dd, yyyy");
                 java.util.Date dtt;
                 try {
                       dtt = (Date)df.parse(fromDate);
                       java.sql.Date ds = new java.sql.Date(dtt.getTime());
                       System.out.println(ds);
                       System.out.println(new SimpleDateFormat("dd/MM/yyyy").format(ds));
                    } catch (ParseException ex) {}
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2011-05-11
          • 1970-01-01
          • 2021-08-14
          • 1970-01-01
          • 2020-08-26
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多