2011-04-18 79 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