繁体   English   中英

无法使用LocalDateTime解析日期

[英]Cannot parse date with LocalDateTime

我正在尝试使用Java8 LocalDateTime解析日期字符串,但没有成功。

例外是: DateTimeParseException:无法在索引3处解析文本'28 -APR-2015 01:25:00 PM'

要解析的字符串是: 28-APR-2015 01:25:00 PM ,我当前使用的模式是dd-LLL-yyyy hh:mm:ss a

我哪里错了?

谢谢

添加示例代码:

String text = "28-APR-2015 01:25:00 PM";
DateTimeFormatter fromatter = DateTimeFormatter.ofPattern("dd-LLL-yyyy hh:mm:ss a");
try {
        String out = LocalDateTime.parse(text, formatter)
        System.out.println(out);
    } catch (DateTimeParseException e) {
        e.printStackTrace();
    }

通过使用@Florin的响应来解决:

    DateTimeFormatter tertiaryFormatter = new DateTimeFormatterBuilder()
        .parseCaseInsensitive().parseLenient().appendPattern("dd-LLL-yyyy hh:mm:ss a").toFormatter();

英文MMM4月

英语LLL将是4

请运行此代码段-它会为您提供很多解释:

    asList("MMM", "LLL").forEach(ptrn
            -> System.out.println(ptrn + ": " + ofPattern(ptrn, Locale.ENGLISH).format(Month.APRIL))
    );
    Locale.setDefault(Locale.ENGLISH);
    String textM = "28-Apr-2015 01:25:00 PM";
    DateTimeFormatter formatterM = DateTimeFormatter.ofPattern("dd-MMM-yyyy hh:mm:ss a");
    System.out.println(LocalDateTime.parse(textM, formatterM));

    String textL = "28-4-2015 01:25:00 PM";
    DateTimeFormatter formatterL = DateTimeFormatter.ofPattern("dd-LLL-yyyy hh:mm:ss a");
    System.out.println(LocalDateTime.parse(textL, formatterL));

如果你需要使用APR,那么你需要建立自己的DateTimeFormatter使用DateTimeFormatterBuilder并设置parseCaseInsensitive选项。

问题是由于您的时间模式问题。 您需要确保您的时间格式可以与模式匹配。

https://docs.oracle.com/javase/8/docs/api/java/time/format/DateTimeFormatter.html

在此处输入图片说明

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM