2012-09-28 39 views
1

我试图解析日期如下:Tue 8月28日21时十六分23秒+0000 2012这个代码:解析时间SimapleDateFormat

SimpleDateFormat format = new SimpleDateFormat("E M dd HH:mm:ssZ yyyy", Locale.ENGLISH); 
String d = object.getString("created_at"); // d = Tue Aug 28 21:16:23 +0000 2012; 
date = format.parse(d); 

但有例外:

09-28 11:10:24.471: W/System.err(10388): java.text.ParseException: Unparseable date: "Fri Sep 28 07:09:09 +0000 2012" (at offset 4) 

我犯了什么错误?

回答

2

试试这个

SimpleDateFormat format = new SimpleDateFormat("EEE MMM dd HH:mm:ss Z yyyy", Locale.ENGLISH); 

MMM用于表示短短的一个月。

+0

谢谢,这是工作,但还有一个错误:E MMM dd HH:mm:ss Z yyyy。 ss和z之间的空格。我会接受你的回答。 –

2

需要MMM为八月月表示

SimpleDateFormat format = new SimpleDateFormat("E MMM dd HH:mm:ssZ yyyy", Locale.ENGLISH); 
     String d = "Tue Aug 28 21:16:23 +0000 2012"; // d =; 
     Date date = format.parse(d); 
       System.out.println(date); 

输出:星期二8月28日22点16分23秒BST 2012

这可能有助于寻找到SimpleDateFormat's javadoc,也有一些有用的例子模式字符串。

+0

谢谢,这是工作,但还有一个错误:E MMM dd HH:mm:ss Z yyyy。 ss和Z之间的空间 –