преобразувайте String в Date

Искам да преобразувам следния низ в тип Дата по този начин

Date dateToFormat = null;

DateFormat formatter = new SimpleDateFormat("E MMM d HH:mm:ss zzzz yyyy"); 

String databaseDateAsString = "Wed May 11 16:30:00 Asia/Calcutta 2011";

try {
    dateToFormat = formatter.parse(databaseDateAsString);
} catch (Exception e) {
    System.out.println("Cannot Parse Date:" + e);
}

Но дава следната грешка: -

Cannot Parse Date:java.text.ParseException: Unparseable date: 
        "Wed May 11 16:30:00 Asia/Calcutta 2011"

Моля, помогнете как мога да премахна тази грешка.


person Karan    schedule 12.05.2011    source източник


Отговори (1)


Форматът на часовата зона, който използвате, не е разрешен (прочетете javadocs). Ако е възможно, оставете го, анализирайте останалото, като зададете часовата зона в самия обект dateFormat

public static void main(String[] args) {
    Date dateToFormat = null;

    DateFormat formatter = new SimpleDateFormat("E MMM d HH:mm:ss yyyy"); // zzzz yyyy");

    String databaseDateAsString = "Wed May 11 16:30:00 Asia/Calcutta 2011";
    databaseDateAsString = "Wed May 11 16:30:00 2011";
    formatter.setTimeZone(TimeZone.getTimeZone("Asia/Calcutta"));
    try {
        dateToFormat = formatter.parse(databaseDateAsString);
        System.out.println(dateToFormat);
    } catch(Exception e) {
        System.out.println("Cannot Parse Date:" + e);
    }
}
person MJB    schedule 12.05.2011
comment
В зависимост от това къде се намирате, може също да се наложи да посочите локала: new SimpleDateFormat(EEE MMM d HH:mm:ss yyyy, Locale.US) - person Peter; 12.05.2011