2

I want to execute a simple example to parse string to date with pattern.

String input = "Sep 31 2013";
LocalDate localDate = LocalDate.parse(input,
                DateTimeFormatter.ofPattern("MMM d yyyy"));

It throws exception:

Exception in thread "main" java.time.format.DateTimeParseException: Text 'Sep 31 2013' could not be parsed at index 0
    at java.time.format.DateTimeFormatter.parseResolved0(Unknown Source)
    at java.time.format.DateTimeFormatter.parse(Unknown Source)
    at java.time.LocalDate.parse(Unknown Source)
    at lambda.DateTime.main(DateTime.java:78)

I use java.time package from java 8.

Sotirios Delimanolis
  • 274,122
  • 60
  • 696
  • 724
Volodymyr Levytskyi
  • 3,364
  • 9
  • 46
  • 83

1 Answers1

7

I'm going to assume you have a non-english Locale. If you want to parse in English, use the appropriate Locale

String input = "Sep 31 2013";
LocalDate localDate = LocalDate.parse(input, DateTimeFormatter
            .ofPattern("MMM d yyyy").withLocale(Locale.ENGLISH));

Or any other English Locale: US, CANADA, UK, etc.

Alternatively, for your Locale, ru_RU, pass a Russian date String, ie. where Sep is in Russian so that it can be parsed appropriately

Sotirios Delimanolis
  • 274,122
  • 60
  • 696
  • 724