2013-06-19 6 views
5

niespójne Przykładowy kod mówi sama za siebie:SimpleDateFormat błąd parsowania

private void parse() throws ParseException{ 
     SimpleDateFormat sdf = new SimpleDateFormat("MMM/dd/yyyy"); 

     Date started = sdf.parse("Sep/22/2004"); 
     // this triggers: java.text.ParseException: Unparseable date: "May/23/2010" 
     Date ended = sdf.parse("May/23/2010"); 
} 

Nie wiem, co jeszcze mogę dodać do tego. Próbuję przeanalizować daty "MMM/dd/rrrr" i otrzymuję niespójne zachowanie wyjątku. Czuję, że brakuje mi czegoś oczywistego.

+4

Czym jest locale? – Guillaume

+0

O kurde, oczywiście. – habitats

+1

@habitats Lub po prostu: 'DateFormat sdf = new SimpleDateFormat (" MMM/dd/yyyy ", Locale.ENGLISH);' jeśli nie chcesz zmieniać ustawień ogólnych. – assylias

Odpowiedz

4

To było oczywiście związane z lokalizacją. Dodać:

sdf.setDateFormatSymbols(DateFormatSymbols.getInstance(Locale.ENGLISH)); 

Lub alternatywnie po prostu zadeklarować ją z lokalizacji:

SimpleDateFormat sdf = new SimpleDateFormat("MMM/dd/yyyy", Locale.ENGLISH);