2015-09-30 26 views
2

我想解析日期表示为一个字符串。字符串的一个例子是:20150724T104139.118+02Dateformat不会解析字符串

有解析代码:

DateFormat formatter = new SimpleDateFormat(timestampFormat); 
return formatter.parse("yyyyMMdd'T'HHmmss'.'SX"); 

其抛出错误:

java.text.ParseException: Unparseable date: "20150724T104139.118+02" 
at java.text.DateFormat.parse(DateFormat.java:366) 
at 

的图案是转化日期成,当我使用相同的串。

回答

2

首先,你错误地交换了SimpleDateFormat字符串,要分析之日起的字符串。格式字符串也与示例日期不匹配。你需要三次毫秒数的S。请尝试以下操作:

String text = "20150724T104139.118+02"; 
DateFormat formatter = new SimpleDateFormat("yyyyMMdd'T'HHmmss'.'SSSX"); 
Date myTime = formatter.parse(text); 
+0

感谢,单独的S是错误的问题复制代码(我简化了一点)当字符串交换发生这在原文中是正确的。 – olkoza

2

parse期待的日期,而不是模式:

所有的
new SimpleDateFormat(datePattern).parse(dateToParse) 
0

你可以尝试这样的:

SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd'T'HHmmss'.'sssX"); 
sdf.setTimeZone(TimeZone.getTimeZone("GMT")); //Set the timezone as per your env if you want 
sdf.parse("yourDate");