Попытка преобразовать строковую дату в дату - PullRequest
0 голосов
/ 20 декабря 2011

java.text.ParseException: Неразборчивая дата: «Суббота 01 01: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 ]

3 голосов
/ 20 декабря 2011

Это может быть потому, что вы используете формат 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 голос
/ 20 декабря 2011

SimpleDateFormat зависит от локали, поэтому, предоставив его, вы можете получить строку даты, локализованную для конкретного языка или страны

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

1 голос
/ 20 декабря 2011
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.

...