dognose
dognose

Reputation: 20889

Java SimpleDatetime parse

Maybe i'm just missing the obvious, but I can't get SimpleDateTimes parse() method to work:

I want to parse dates like June 19, 2011. So, according to the documentation: http://docs.oracle.com/javase/7/docs/api/java/text/SimpleDateFormat.html

for my needs it should be:

but with

SimpleDateFormat sdf = new SimpleDateFormat("MMM d, yyyy");
Date d = sdf.parse("June 19, 2011");

I'll always get java.text.ParseException: Unparseable date: "June 19, 2011"

Where am I thinking wrong? :)

Upvotes: 0

Views: 534

Answers (2)

Basil Bourque
Basil Bourque

Reputation: 338181

Joda-Time

Here is an example akin to the correct answer but using the Joda-Time library.

Both Joda-Time and the java.time package are far superior to the old java.util.Date an .Calendar classes bundled with Java. One of many advantages is a class, LocalDate, to represent date-only values without time-of-day or time zone.

DateTimeFormatter formatter = DateTimeFormat.forPattern( "MMM, d, YYYY" ).withLocale( Locale.ENGLISH );
LocalDate localDate = formatter.parseLocalDate( "June 19, 2011" );

Upvotes: 0

Sotirios Delimanolis
Sotirios Delimanolis

Reputation: 279880

I'm assuming your Locale is some German value since you seem to be in Germany. June won't parse as a German word for a month. Set your Locale to an English value.

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

Upvotes: 3

Related Questions