2011-04-18 40 views
0

我發誓我使用正確的日期格式,但我一直加載到WEKA時得到一個分析錯誤。Java SimpleDateFormat解析問題到WEKA

"MonFeb2116:00:00+0000" 
"EEEMMMddHH:mm:ssZ" 

下面是一個例子數據集:

@RELATION example 

@ATTRIBUTE tweetid STRING 
@ATTRIBUTE timestamp DATE "EEEMMMddhh:mm:ssZ" 
@ATTRIBUTE I NUMERIC 
@ATTRIBUTE a NUMERIC 
@ATTRIBUTE cool NUMERIC 
@ATTRIBUTE foo NUMERIC 
@ATTRIBUTE bar NUMERIC 
@ATTRIBUTE temp NUMERIC 
@ATTRIBUTE class {POS,NEG} 

@DATA 
39715973388828673,"MonFeb2116:00:00+0000",0,0,0,0,2,2,? 
39716148329197568,"MonFeb2116:00:42+0000",0,1,0,0,0,1,? 
39715973388828673,"MonFeb2116:00:51+0000",1,0,0,0,0,0,? 
39723030380941312,"MonFeb2116:28:03+0000",0,0,0,0,0,0,? 
39723030531944448,"MonFeb2116:28:03+0000",0,0,0,0,0,0,? 
39723031433707520,"MonFeb2116:28:03+0000",0,0,0,0,0,0,? 

WEKA錯誤:

unparseable date "MonFeb2116:00:00+0000, read Token[MonFeb2116:00:00+0000], line 21 

是否使用了API文檔,仔細檢查 - 失去了一些東西?

http://download.oracle.com/javase/1.4.2/docs/api/java/text/SimpleDateFormat.html

EDIT -----------

@RELATION example 

@ATTRIBUTE tweetid STRING 
@ATTRIBUTE timestamp DATE "EEE MMM dd hh:mm:ss Z" 
@ATTRIBUTE I NUMERIC 
@ATTRIBUTE a NUMERIC 
@ATTRIBUTE cool NUMERIC 
@ATTRIBUTE foo NUMERIC 
@ATTRIBUTE love NUMERIC 
@ATTRIBUTE temp NUMERIC 
@ATTRIBUTE class {POS,NEG} 

@DATA 
39715973388828673,"Mon Feb 21 16:00:00 +0000",0,0,0,0,2,2,? 
39716148329197568,"Mon Feb 21 16:00:42 +0000",0,1,0,0,0,1,? 
39715973388828673,"Mon Feb 21 16:00:51 +0000",1,0,0,0,0,0,? 
39723030380941312,"Mon Feb 21 16:28:03 +0000",0,0,0,0,0,0,? 
39723030531944448,"Mon Feb 21 16:28:03 +0000",0,0,0,0,0,0,? 
39723031433707520,"Mon Feb 21 16:28:03 +0000",0,0,0,0,0,0,? 

格式化的日期與空間分隔標記。仍然沒有在WEKA玩球...

回答

1

你正在使用哪些默認語言環境?使用英文區域設置,字符串"MonFeb2116:00:00+0000"應該可以使用"EEEMMMddHH:mm:ssZ"模式解析。但請注意,如果模式或分析字符串中不存在,則年份將默認爲1970年。這可能不是你真正想要的。

+0

我已修改時間戳以再次包括年份並在每個令牌之間放置一些空格: 「EEE MMM dd HH :mm:ss Z yyyy「現在完全解析時間戳,如: Mon Feb 21 16:00:00 +0000 2011 感謝您的幫助! – bhalsall 2011-04-18 14:57:03

1

嗯,我不知道它是否會排除所有事情,但嘗試更改hh(12小時制)到HH(24小時制)。我不確定它是否能夠在沒有任何空格的情況下閱讀「星期/星期幾的名稱」,即使如此......您是否已有以獲得該格式的值?如果你可以在第三和第六個字符之後放一個空格,這將有助於...

+0

這是正確的。改變它,但仍然不解析。演示文稿(文本,數字)是否可能導致問題的混合?時間戳記格式取自twitter API,刪除任何空格。我會嘗試添加一天(EEE)和一個月(MMM)之間的間隔,以查看它是否有差別 – bhalsall 2011-04-18 14:14:44