我无法使用 SimpleDateFormat
解析日期。我试过这段代码:
SimpleDateFormat fechas = new SimpleDateFormat("dd/MM/yyyy hh:mm");
if (data[i].length() > 1) {
Date f = (Date) fechas.parse(data[i]);
System.out.println(i + " " + f);
}
我收到以下错误:
Exception in thread "main" java.text.ParseException: Unparseable date: "01/06/2015 8:20
”
我用下面的代码又遇到了同样的问题:
SimpleDateFormat fech = new SimpleDateFormat(" yyyy/MM/dd HH:mm:ss");
Date date = (Date) fech.parse(data[i]);
System.out.println(date);
哪个给出了错误
Exception in thread "main" java.text.ParseException: Unparseable date: "00015/06/01 08:20:15"
我该如何解决这个问题?
最佳答案
使用 SimpleDateFormat
时,日期格式必须完全匹配。在您的示例中,您包括日期,但在您的日期格式中,您还指定了小时和分钟。如果您的数据有该文本,它就可以工作。例如,使用您的第一个示例:
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
public class DateDemo {
public static void main(String args[]) throws Exception {
String yourData = "01/06/2015";
String matchingData = "01/06/2015 13:00";
SimpleDateFormat fechas = new SimpleDateFormat("dd/MM/yyyy hh:mm");
Date matchingDate = fechas.parse(matchingData);
System.out.println("String: \"" + matchingData + "\" parses to " + matchingDate);
Date yourDate = fechas.parse(yourData);
System.out.println("String: \"" + yourData + "\" parses to " + yourDate);
}
}
这个输出:
String: "01/06/2015 13:00" parses to Mon Jun 01 13:00:00 CDT 2015
Exception in thread "main" java.text.ParseException: Unparseable date: "01/06/2015"
at java.text.DateFormat.parse(DateFormat.java:366)
at Demo.main(Demo.java:14)
关于java - 为什么我会收到无法解析的日期异常?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31519190/