如何验证字符串是否是dateTime对象?

时间:2012-12-15 22:28:27

标签: rdf sparql freebase dbpedia virtuoso

我从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对象)。

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

先谢谢。 任何帮助表示赞赏。

1 个答案:

答案 0 :(得分:0)

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

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

如果你发现ParseException,你知道它没有格式化为有效的日期时间字符串,你可以按照你的意愿继续,抛出错误,打印警告,尝试将其修复为有效的日期时间等。< / p>