问题
java.text.ParseException: Unparseable date: "Sat May 01 00:00:00 EDT 2010"
I am trying to parse this date using the SimpleDateFormat class.
java.util.Date prevStartDate = new Date();
java.util.Date prevStopDate = new Date();
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
prevStartDate = dateFormat.format(startDateLY);
回答1:
That would be because you're using the format of yyyy-MM-dd
- you have to add each parameter in your input to that format.
It looks like your format is E MMM dd HH:mm:ss z yyyy
So you need to convert from one to the other:
static DateFormat extended = new SimpleDateFormat("E MMM dd HH:mm:ss z yyyy");
static DateFormat simple = new SimpleDateFormat("yyyy-MM-dd");
String reformat(String extendedString) {
Date yourDate = extended.parse(extendedString);
String simpleString = simple.format(yourDate);
return simpleString;
}
Or alternatively,
String reformat(String dateString) {
return simple.format(extended.parse(dateString));
}
回答2:
SimpleDateFormat is Locale dependent, so by providing one you can get the Date string localized for specific language or country
http://www.javablogging.com/java-simpledateformat-examples/
回答3:
DateFormat formatter = new SimpleDateFormat("E MMM dd HH:mm:ss z yyyy");
Date date = (Date)formatter.parse("Sat May 01 00:00:00 EDT 2010");
String string = new String(date.getYear() + "-" + date.getMonth() + "-" + date.getDay());
Should work better then just yyyy-MM-dd
.
来源:https://stackoverflow.com/questions/8568223/trying-to-convert-string-date-into-a-date