java - 为什么我会收到无法解析的日期异常?

标签 java date simpledateformat

我无法使用 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/

相关文章:

php - MySQL 选择时间戳列作为秒

java - SimpleDateFormat 设置解析日期的当前日期

java - 如何在 ListView 中显示格式如下 "12:30 PM"的 TextView ?

java - Wicket 请求映射

java - PKIX 证书路径错误 : ok with java, 不适用于 Tomcat

mysql日期比较只比较年份

iphone - 使用 AddressBookUI 访问联系人添加到 iPhone 地址簿的日期

java - Servlet - 如何接收 zip 文件

java - 删除 UI 线程中已发送的消息

Java SimpleDateFormat 解析返回错误的日期