有人可以告诉我为什么我会在以下代码中获得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();
}
}
}
答案 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。)