ParseException:Java 中无法解析的日期

ParseException: Unparseable date in Java

我需要将字符串(日期格式)转换为时间戳。

一开始我是这样的。

private Timestamp dateConverter(String date) {
    Timestamp timestamp = null;
    SimpleDateFormat dateFormat = new SimpleDateFormat("dd MMM yyyy HH:mm");
    Date parsedDate = null;
    try {
        parsedDate = dateFormat.parse(date);
        timestamp = new java.sql.Timestamp(parsedDate.getTime());
    } catch (ParseException e) {
        e.printStackTrace();
    }
    return timestamp;
}

结果是: ParseException: Unparseable date: "16 Jan 2020 11:02"

我尝试了另一种方式:

private Timestamp dateConverter(String date) {
    DateTimeFormatter f = DateTimeFormatter.ofPattern("dd MMM yyyy HH:mm");
    LocalDateTime ldt = LocalDateTime.parse(date , f);

    return Timestamp.valueOf(ldt);
}

此时我遇到了 DateTimeParseException: Text '16 Jan 2020 11:02' could not be parsed at index 3

的内部服务器错误

您的模式无法知道您所在月份的语言是什么,英语、法语、阿拉伯语、俄语、普通话...,要解决此问题,您必须像这样使用 Locale 来帮助格式化程序:

DateTimeFormatter f = DateTimeFormatter.ofPattern("dd MMM yyyy HH:mm")
                .withLocale(new Locale("us")); 
LocalDateTime ldt = LocalDateTime.parse("16 Jan 2020 11:02" , f); // 2020-01-16T11:02