小编典典

将字符串转换为Java中的日期格式

java

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

  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)

阅读 230

收藏
2020-11-30

共1个答案

小编典典

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

"EEEE, MMMM/dd/yyyy"对于“ 2013年2月26日,星期二”之类的输入有效。它甚至不是 稍微
有效期为“2013年2月26日”。您知道您正在 解析 文本,而不是对其进行格式化吗?

看起来您想要的格式字符串为“ 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);
2020-11-30