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

时间:2011-11-16 14:36:29

标签: 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();
        }
    }

}

2 个答案:

答案 0 :(得分:9)

因为您所在时区的冒号。删除它,它将工作:

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

答案 1 :(得分:5)

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

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

(有关详细信息,请参阅今天早些时候的similar-but-not-quite-the-same-question。)