0

我想以这种方式将以下字符串转换为日期类型

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"

请帮助我如何消除此错误。

4

1 回答 1

3

不允许使用您使用的时区格式(阅读 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);
    }
}
于 2011-05-12T05:51:02.910 回答