Trying to convert string date into a date

蹲街弑〆低调 提交于 2019-12-20 07:20:39

问题


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

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!