当前位置: 首页 > 知识库问答 >
问题:

ParseException:Java中不可解析的日期[duplicate]

富涛
2023-03-14

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

一开始我是这样做的。

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;
}

我试着用另一种方法:

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的内部服务器错误:无法在索引3处分析文本“16 Jan 2020 11:02”

共有1个答案

李洋
2023-03-14

您的模式无法知道您所在月份的语言是什么,英语、法语、阿拉伯语、俄语、普通话……要解决这个问题,您必须使用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
 类似资料:
  • 我尝试将字符串转换为日期。

  • 例如,我得到了这个日期字符串: 看起来Android无法解析某些时区。感谢@Burhanuddin Rashid的这种方法。 此处的解决方案:不可更改的日期:“IST 2014年星期五10月10日23:11:07”(偏移量20)

  • 问题内容: 我正在尝试用正斜杠替换连字符,但结果是 我具有要转换的必要值,有人可以告诉我为什么它返回错误吗?另外,我想在格式的末尾附加一个,可以吗? 问题答案: 您需要先解析为正确的格式作为输入 然后您可以使用format()以其他格式打印它 并且不要期望类的方法返回格式化值,这是固定的实现

  • 问题内容: 尝试转换日期格式时,出现一个异常:日期不可解析,并且不知道如何解决此问题。 我收到一个表示事件日期的字符串,并希望在GUI中以其他格式显示该日期。 我试图做的是以下几点: 不管怎么说 是假的。我想要以下格式的日期字符串: dd.MM.yyyy HH:mm:ss 输入的String示例如下: 2010-01-04 01:32:27 UTC 有谁知道如何将上面的示例日期(字符串)转换为字符

  • 问题内容: 我正在尝试使用解析日期时间字符串,但我一直收到不可解析的日期异常。 这是我尝试解析的日期格式: 这是我正在使用的代码: 返回此错误: 据我所知,这是使用SimpleDateFormat类的正确方法,但是我不精通Java,所以我可能会弄错。有人知道我的问题是什么吗? 问题答案: 时区应为GMT-08:00或-0800(如Madcore Tom所说)。请参阅Java文档。 在Java 7中

  • 当我试图解析发送到android客户端的日期字符串时,我得到了一个不可解析的日期。 这是个例外: