通过SimpleDateFormat .parse()解析字符串值时获取错误

时间:2013-08-27 07:08:33

标签: java datetime

import java.text.SimpleDateFormat;
import java.util.Date;

public class DateExample {

public static SimpleDateFormat TIMEZONE_DATE_FORMAT = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss z");

private static final SimpleDateFormat[] DATE_FORMATS = 
{
    new SimpleDateFormat("MM/dd/yyyy hh:mm:ss aa"),
    new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS"),
    new SimpleDateFormat("EEE MMM dd HH:mm:ss zzz yyyy"),
    TIMEZONE_DATE_FORMAT,
};

public static void main(String[] args){

    for(SimpleDateFormat format : DATE_FORMATS){

        try {
            Date date = format.parse("1377154948450");
            System.out.println("Date: "+ date.toString());

        } catch (Exception e) {e.printStackTrace();}
    }
}

}

现在,parse方法中的String值是从方法调用中得到的,我无法改变它。运行此代码时会出现异常

java.text.ParseException: Unparseable date: "1377154948450"
    at java.text.DateFormat.parse(DateFormat.java:337)

1 个答案:

答案 0 :(得分:1)

抛出异常,因为您的格式都不匹配字符串。

你可以尝试

Date date = new Date(Long.parseLong("1377154948450"));