2011-01-31 72 views
1

我正在为将从多个国家/地区访问的我的Web服务定义架构。我想知道下面哪两个应该使用(都是根据xsd dateTime类型和ISO 8601有效)和其中哪一个是符合WS-IUTC或本地时间与我的架构的区域偏移?

  1. UTC格式等14:15Z或14:15:00Z。附加的Z字母表示时间以UTC表示。
  2. 或者,使用本地时间,其明确的区域名称为,格式为[+/-] hh:mm。例如:12:15 + 02:00

回答

3

它有点主观 - 两者都可以。我更喜欢UTC。无论如何,您可能需要将时间转换为本地客户端(并且您应该依赖来自客户端的信息来执行此操作,因为用户可能会从不同的时区登录)。以UTC存储时,您不必担心存储的具体细节,因为所有时间都在同一时区表示,并且比较容易(因此排序)。

+0

+1请您详细说明“以UTC存储至少可以使两个日期比较更快” – 2011-01-31 15:06:13

1

这取决于用例。有时知道客户端所处的时区非常有用。如果用户在他们的时区输入了13:00的时间,他们可能仍然希望在检索日期时看到13:00。

请注意,我并不是说你把时间存储在本地(当然这会很糟糕),只是你可能想要维持时区。

1

这两种格式都与WS-I Basic Profile配合使用,因为它们都是xsd:dateTime的有效词法格式。

通常,服务描述会在模式中指定xsd:dateTime,并且通常不会进一步限制词法格式。在这种情况下,服务实现应准备好处理任何有效的xsd:dateTime值,即应该能够处理从客户端接收的数据中的任何一种形式。

如果您确实想要,您可以通过定义基于xsd:dateTime的自定义类型并使用其他模式构面来限制服务描述架构中允许的词法格式。这仍然是WS-I基本配置文件,我相信,但我会避免这样做,除非你有一个非常有说服力的理由。根据我的经验,基于带添加模式构面的XSD类型的自定义类型并不总是与所有XML工具集一起使用,因此您可能会通过添加xsd:dateTime之外的其他约束来为客户端创建问题。

相关问题