我正在尝试解析日期以将其转换为时代。我尝试了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);
答案 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。