0

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:

  • M: Month in year. If the number of pattern letters is 3 or more, the month is interpreted as text; --> MMM
  • d: Day in month. For parsing, the number of pattern letters is ignored unless it's needed to separate two adjacent fields --> d
  • y: Year. For parsing, if the number of pattern letters is more than 2, the year is interpreted literally, regardless of the number of digits. --> yyyy

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? :)

0

2 Answers 2

3

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);
Sign up to request clarification or add additional context in comments.

1 Comment

I recommend always specifying both time zone and locale to avoid these kinds of problems with implicit defaults.
0

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" );

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.