1

我想将此字符串转换为以下日期格式。

  String s = "2-26-2013";
  Date date = new SimpleDateFormat("EEEE, MMMM/dd/yyyy").parse(s);
  System.out.println(date);

我收到此错误:

Exception in thread "main" java.text.ParseException: Unparseable date: "2-26-2013"
    at java.text.DateFormat.parse(DateFormat.java:357)
4

3 回答 3

4

嗯,是。您传递给构造函数的参数SimpleDateFormat表示您希望日期采用的格式。

"EEEE, MMMM/dd/yyyy"对于像“2013 年 2 月 26 日星期二”这样的输入有效。对于“2-26-2013”​​,它甚至都不是有效。你明白你现在正在解析文本,而不是格式化它吗?

看起来您想要一个“M-dd-yyyy”或可能是“Md-yyyy”的格式字符串。

如果您尝试从一种格式转换为另一种格式,则需要首先指定要解析的格式,然后指定要格式化的格式:

SimpleDateFormat parser = new SimpleDateFormat("M-dd-yyyy");
SimpleDateFormat formatter = new SimpleDateFormat("EEEE, MMMM/dd/yyyy");
Date date = parser.parse(input);
String output = formatter.format(date);
于 2013-02-26T09:44:45.223 回答
0

而不是使用MMMM/dd/yyyy你需要使用MM-dd-yyyy. SimpleDateFormat 期望模式匹配它试图解析的内容。

于 2013-02-26T09:48:31.550 回答
0
Date date = new SimpleDateFormat("MM-dd-yyyy").parse(s);

SimpleDateFormat 的参数定义了您的日期格式。上面的行与您的格式匹配,并且有效。你的例子不匹配。

于 2013-02-26T09:48:13.367 回答