Warm tip: This article is reproduced from serverfault.com, please click

xml-可以使用xsd:dateTime定义BC日期吗?

(xml - Possible to define B.C. dates using xsd:dateTime?)

发布于 2020-12-12 23:32:18

我正在开发一个使用OWL和知识图来表示历史时期和里程碑的系统。是否可以使用xsd:dateTime数据类型表示BC日期,例如罗马帝国的开始?

Questioner
Michael DeBellis
Viewed
0
Michael Kay 2020-12-13 17:31:05

你可以使用负号来表示否定日期,但其含义令人困惑。XSD 1.0采用了ISO 8601,但没有注意到在ISO 8601中0001之前的年份是0000(与天文学家使用的惯例相对应),而在历史学家使用的BC / AD日历中,1AD之前的年份是1BC。XSD 1.1纠正了此问题,因此在1.1中,年份为零。当然,仅当你计算两个日期之间的间隔时,这才会影响事情。

还要注意的另一件事是,ISO 8601使用了多用的格里高利历法(在XSD 1.0中,misspelt为“ prolaptic”)。这会将当前的leap年规则投影到过去,而不是使用当时的当前规则。(当然,它也使用现代惯例,例如从1月1日开始,而不是从3月21日开始)。BC日期的ISO 8601表示与现代历史学家在同一日期使用的标签不对应。(这显然与当时人们使用的标签不符-他们不知道弥赛亚何时到来。)

因此,你可以使用负的ISO 8601日期,但你需要注意,零年的规则以及2月29日的年份可能与你期望的不完全相同。