String上的Java java.time.format.DateTimeParseException

时间:2016-07-01 22:56:50

标签: java

我正在尝试解析日期以将其转换为时代。我尝试了similar question here的解决方案但没有成功:

String date = "Jun 4 2015";    
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("LLL dd yyyy").withLocale(Locale.ENGLISH);
LocalDateTime ldt  = LocalDateTime.parse(date, formatter);
System.out.println(date+" "+ldt.toEpochSecond(ZoneOffset.UTC));

我得到Exception in thread "main" java.time.format.DateTimeParseException: Text 'Jun 4 2015' could not be parsed at index 0即使我相当肯定我的正则表达式is correct。我在这里缺少什么?

编辑:

在评论之后,我将LocalDateTime更改为LocalDate,但仍然收到相同的错误:

String date = "Jun 4 2015";    
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("MMM d yyyy").withLocale(Locale.ENGLISH);
LocalDate ldt  = LocalDate.parse(date, formatter);

1 个答案:

答案 0 :(得分:6)

    String date = "Jun 4 2015";
    DateTimeFormatter formatter = DateTimeFormatter.ofPattern("MMM d yyyy").withLocale(Locale.ENGLISH);
    LocalDate ldt  = LocalDate.parse(date, formatter);

解析得很好。不要把“dd”,因为它不会解析小于10的天数。正如@JB Nizet所说,你需要使用LocalDate,而不是LocalDateTime。