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

时间:2011-12-19 22:09:29

标签: java date simpledateformat

java.text.ParseException:Unparseable date:“Sat May 01 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);

3 个答案:

答案 0 :(得分:3)

那是因为您使用的格式为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));
}

答案 1 :(得分:1)

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更好地工作。

答案 2 :(得分:1)

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

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