Maybe i'm just missing the obvious, but I can't get SimpleDateTime
s 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? :)
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 yourLocale
to an English value.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.