1

我从 freebase 数据中得到一些无效的 dateString。以下 sparql 查询的输出是

询问:

select ?dob dataType(?dob) as ?dataType {
<http://freebase.com/ns/m/011k9p> <h://freebase.com/ns/common/topic/notable_types> <http://freebase.com/ns/people/person> .
<http://freebase.com/ns/m/011k9p> <h://freebase.com/ns/people/person/date_of_birth> ?dob 
} 

输出:

dob     dataType
-0359   http://www.w3.org/2001/XMLSchema#string

dob 获得 -0359 使该字段的年龄计算变得不可能(因为我无法将其转换为 xsd:dateTime 对象)。

如何检查字符串是否可以转换为类型?

提前致谢。任何帮助表示赞赏。

4

1 回答 1

0

可能最简单的事情就是使用 SimpleDateFormat 来尝试解析字符串:

return new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss").parse(theDate);

如果你捕捉到 ParseException,你知道它没有被格式化为一个有效的日期时间字符串,然后你可以按照你的意愿继续,抛出一个错误,打印一个警告,尝试将它修复为一个有效的日期时间,等等。

于 2012-12-16T17:21:04.443 回答