Xml架构和日期时间

时间:2010-08-05 03:26:04

标签: xml datetime xsd timezone globalization

我正在开始一个新项目,涉及多个平台(windows,windows mobile,Iphone,Ipad等等尚未被发现的大量xml和架构使用)。这个xml平台必须能够交换来自世界各地的日期时间,因为我们的产品目前正在澳大利亚以及加拿大和美国实施。

日期时间通常是导致不同平台和语言之间问题最多的“类型”。

我应该相信内置日期类型吗?或者我应该将每个日期分解为它的子部分,例如小时,分钟,秒,日,月,年,时区等的元素或属性。

我想了解上述每个选项的专业和概念。

编辑:添加了2个后续问题以提高清晰度

  1. 如果使用普通的xml日期“类型”,我如何确保所有客户端都以这种格式正确写入日期?

  2. 我知道.net我可以使用DateTime.ToUniversalTime()其他语言是否具有相同的功能,还是控制转换到国际时间的XML写入dll?

  3. 由于 皮特

1 个答案:

答案 0 :(得分:3)

XML模式中的“内置”日期类型是国际标准。我无法想象你怎么能比你自己做得更好。


来自Eric van der Vlist的XML Schema: The W3C's Object-Oriented Descriptions for XML,第16章,“数据类型参考指南”,“xs:dateTime”:

描述

此数据类型描述由日期和时间的组合标识的时刻(原文如此)。它的价值空间被描述为ISO 8601第5.4章中的“日期和时间的组合”。它的词汇空间是扩展格式“[ - ] CCYY-MM-DDThh:mm:ss [Z |(+ | - ) )HH:MM]”。时区可以指定为“Z”(UTC)或“(+ | - )hh:mm”。未指定的时区被视为“未确定”。

实施例

xs:dateTime的有效值包括:“2001-10-26T21:32:52”,“2001-10-26T21:32:52 + 02:00”,“2001-10-26T19:32: 52Z“,”2001-10-26T19:32:52 + 00:00“,” - 2001-10-26T21:32:52“,或”2001-10-26T21:32:52.12679“。

以下值无效:“2001-10-26”(必须指定所有部件),“2001-10-26T21:32”(必须指定所有部件),“2001-10-26T25 :32:52 + 02:00“(小时部分(25)超出范围)或”01-10-26T21:32“(必须指定所有部分)。


请注意,您可以要求通过限制值pattern来指定时区。