尝试将字符串日期转换为日期

java.text.ParseException:无法解析的日期:“2010年5月1日00:00:00 EDT 2010”

我试图使用SimpleDateFormat类解析这个日期。

java.util.Date prevStartDate = new Date(); java.util.Date prevStopDate = new Date(); SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); prevStartDate = dateFormat.format(startDateLY); 

那是因为您使用的是yyyy-MM-dd的格式 – 您必须将输入中的每个参数添加到该格式。

看起来您的格式是E MMM dd HH:mm:ss z yyyy

所以你需要从一个转换为另一个:

 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; } 

或者,

 String reformat(String dateString) { return simple.format(extended.parse(dateString)); } 

SimpleDateFormat依赖于Locale,因此通过提供一个,您可以获取针对特定语言或国家/地区的Date字符串

http://www.javablogging.com/java-simpledateformat-examples/

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

应该更好,然后只是yyyy-MM-dd