2012-09-06 63 views
1

我想要改造这个数据:在格式YYYY-MM-DD HH “星期四,2012年9月6日16:15:00 +0200”:毫米无法解析的数据异常

这是我的代码:

private static final SimpleDateFormat rssFormat = new SimpleDateFormat("E, dd MMM yyyy HH:mm:ss Z"); 
public static final SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); 
Date date = rssFormat.parse(pubDate); 
date.setHours(date.getHours()+2); //this is for gmt difference 
this.pubDate = dateFormat.format(date); 

它似乎确定...为什么它会抛出此异常?

java.text.ParseException: Unparseable date: "Tue, 04 Sep 2012 16:45:00 +0200" 
+0

请发送'pubDate'的值。问题是,id不符合你写的格式。 – AlexR

+0

什么例外?请打印整个堆栈跟踪。 –

+0

'date.getHours()'?你使用什么样的'Date'对象?已弃用java.sql.Date自1.4.2以来 –

回答

5

适用于我 - 但后来,我在“Thu”是有效日缩写的地区,“Sep”是有效的月份缩写。也许你不是?假设你知道你获得美英日/月的名字,你应该指定。试试这个:

new SimpleDateFormat("E, dd MMM yyyy HH:mm:ss Z", Locale.US); 

请注意,您绝对不应该叫Date.setHoursDate.getHours这样。这些方法都被弃用了15年以上。

相反,您应该将SimpleDateFormat设置为适当的时区格式,或者最好是首先使用Joda Time,这是一个更令人愉快的日期/时间API。

+0

你是对的!由于我在意大利四月和九月无效!至于日期问题,我会切换到日历,它会好吗? – user1610075