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

Mic*_*lis 2 xml datetime xsd owl

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

Mic*_*Kay 5

您可以用减号表示负日期,但对其含义存在混淆。XSD 1.0 采用了 ISO 8601,但没有注意到在 ISO 8601 中,0001 之前的年份是 0000(对应于天文学家使用的约定),而在历史学家使用的 BC/AD 日历中,1AD 之前的年份是 1BC。XSD 1.1 更正了这一点,因此在 1.1 中有一个年份为零。当然,如果您计算两个日期之间的间隔,这只会影响事情。

另一件要注意的事情是 ISO 8601 使用了公历(在 XSD 1.0 中拼写错误为“prolaptic”)。这会将当前的闰年规则投射到过去,而不是使用当时的规则。(当然,它还使用现代惯例,例如从 1 月 1 日而不是 3 月 21 日开始这一年)。BC 日期的 ISO 8601 表示与现代历史学家为同一日期使用的标签不符。(而且这显然与当时人们使用的标签不符——他们不知道弥赛亚何时到来。)

因此,您可以使用负的 ISO 8601 日期,但您需要注意零年的规则以及哪些年份的 2 月 29 日可能与您期望的不太一样。