java.text.ParseException:无法解析的日期:

Paw*_*wan 8 java

有人可以告诉我为什么我会得到java.text.ParseException: Unparseable date以下代码:

import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Locale;


public class Testdate {
    public static void main(String args[])
    {
        String text = "2011-11-19T00:00:00.000-05:00";
        DateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSZ");
        try {
            Date parsed = sdf.parse(text.trim());
            System.out.println(parsed);
        } catch (ParseException e) {
            e.printStackTrace();
        }
    }

}
Run Code Online (Sandbox Code Playgroud)

Chr*_*ris 8

它是因为你时区的冒号.删除它,它将工作:

String text = "2011-11-19T00:00:00.000-0500";
DateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSZ");
Run Code Online (Sandbox Code Playgroud)


Jon*_*eet 5

因为模式支持的Z部分SimpleDateFormat不处理冒号的偏移.

我建议你改用Joda Time,ISODateFormat.dateTime()用来获得合适的格式化程序.

(请参阅今天早些时候的相似但不完全相同的问题以获取更多信息.)