【发布时间】:2015-03-27 04:55:45
【问题描述】:
你可以猜到我试图解析一个 twitter 日期,所以我可以将它应用到一个表中,代码是关于它现在的样子:
Date d = t.getCreatedAt();
String dateString = d.toString();
SimpleDateFormat f = new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss ZZZZZ");
try {
Date parsed = f.parse(dateString);
System.out.println(" 2. " + parsed.toString());
}
catch(ParseException pe) {
System.out.println("ERROR: Cannot parse \"" + dateString + "\"");
}
我收到的只是错误消息:(
ERROR: Cannot parse "Thu Mar 26 20:10:48 GMT 2015"
更新: 所以尝试了下面链接到没有快乐的东西,我在整个代码中添加了尝试。我也在使用处理
{
QueryResult result = twitter.search(query);
ArrayList tweets = (ArrayList) result.getTweets();
for (int i = 0; i < tweets.size (); i++) {
Status t = (Status) tweets.get(i);
User u=(User) t.getUser();
String user=u.getName();
String msg = t.getText();
Date d = t.getCreatedAt();
final String TWITTER="EEE MMM dd HH:mm:ss ZZZZZ yyyy";
SimpleDateFormat sf = new SimpleDateFormat(TWITTER);
sf.setLenient(true);
return sf.parse(d);
println("Tweet by " + user + " at " + d + ": " + msg);
//Break the tweet into words
String[] input = msg.split(" ");
println(input);
TableRow newRow = table.addRow();
newRow.setString("Name", u.getName());
newRow.setString("Date", d.getDate());
newRow.setString("Tweet", t.getText());
for (int j = 0; j < input.length; j++) {
//Put each word into the words ArrayList
words.add(input[j]);
}
};
显然我想通过格式化日期传递给newRow.setString("Date", d.getDate());
更新如下所示:
Date d = t.getCreatedAt();
//Thu Mar 26 20:21:09 GMT 2015 (time format)
//try catch to test
//after reformatting using Sdf it works
String dateString = d.toString();
SimpleDateFormat f = new SimpleDateFormat("EEE MMM dd HH:mm:ss zzz yyyy");
try {
Date parsed = f.parse(dateString);
System.out.println(" 2. " + parsed.toString());
}
catch(ParseException pe) {
System.out.println("ERROR: Cannot parse \"" + dateString + "\"");
}
println("Tweet by " + user + " at " + d + ": " + msg);
//Break the tweet into words
String[] input = msg.split(" ");
println(input);
TableRow newRow = table.addRow();
newRow.setString("Name", u.getName());
newRow.setString("Date", d.toString());
newRow.setString("Tweet", t.getText());
一如既往的感谢:)
【问题讨论】:
-
看看这个非常相似的 SO 帖子:stackoverflow.com/questions/4521715/twitter-date-unparseable
-
查看您使用的日期格式与您提供的值。它们非常不同。
-
我讨厌使用日期:L
标签: java api parsing date twitter