我想将此字符串转换为以下日期格式。
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)
嗯,是。您传递给的构造函数的参数SimpleDateFormat表示您希望日期采用的格式。
SimpleDateFormat
"EEEE, MMMM/dd/yyyy"对于“ 2013年2月26日,星期二”之类的输入有效。它甚至不是 稍微 有效期为“2013年2月26日”。您知道您正在 解析 文本,而不是对其进行格式化吗?
"EEEE, MMMM/dd/yyyy"
看起来您想要的格式字符串为“ 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);