0

我发誓我使用了正确的日期格式,但在加载到 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

编辑 - - - - - -

@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打球……

4

2 回答 2

1

好吧,我不知道它是否会解决所有问题,但请尝试将hh(12 小时格式)更改为HH(24 小时格式)。我不确定它是否能够在没有任何空格的情况下读取“星期几/月份名称”……您是否必须以该格式获取值?如果您可以在第 3 和第 6 个字符之后放置一个空格,那将有所帮助...

于 2011-04-18T14:13:10.577 回答
1

您使用的是哪个默认语言环境?使用英语语言环境,字符串"MonFeb2116:00:00+0000"应该可以用 pattern 解析"EEEMMMddHH:mm:ssZ"。但是请注意,如果模式或解析的字符串中不存在年份,则默认为 1970 年。这可能不是你真正想要的。

于 2011-04-18T14:47:59.783 回答