2012-08-12 31 views
2

用于Edm.Time的正确格式是什么?OData中的Timespan/Edm.Time格式

我的协议文件中看到DateTime和的DateTimeOffset格式如下:

日期时间: “YYYY-MM-dd'T'HH:MM:SS.FFF” DATETIMEOFFSET:“YYYY-MM- dd'T'HH:mm:ss.fffZ“

我在此检查了协议:http://www.w3.org/TR/xmlschema-2/但无法获得Edm.Time使用的格式。 目前我们使用XmlConvert.ToString将时间跨度值转换为字符串表示形式。 OData对Timespan有何建议?

+0

如果你能够分享你的工作,我很好奇 - 你可以通过我的博客(bitwhys.com)ping我。 – 2012-08-13 00:01:39

回答

0

格式应合理记录在here,它指向this link(在Edm.Time的情况下)。

从XML模式2:

3.2.8.1词汇表示

对于时间的词汇表示是截短的词法 表示为日期时间左边:HH:MM:SS.SSS带有可选以下时间 区域指示器。例如,要为东部标准 指示1:20 pm的时间比协调世界时(UTC)晚5个小时,则其中一个 将写入:13:20:00-05:00。另见ISO 8601日期和时间格式 (§D)。

请注意,时间和日期土地多年来一直存在问题。日期格式根据有效载荷格式和版本而有所不同。例如,JSON详细使用了OData v2的/Date(...)/格式,但在OData v3中更改为ISO 8601(这对于任何不需要实施OData服务器并关心所有人这些细微差别)。这与ASP.NET堆栈经历的挣扎类似:http://www.hanselman.com/blog/OnTheNightmareThatIsJSONDatesPlusJSONNETAndASPNETWebAPI.aspx

+1

时间格式仅限于一个24小时(00:00:00至23:59:59)。您将如何代表涵盖数天,数周或数年的TimeSpan? 3:00:00:00是3天时间的文本表示。 – 2013-04-11 18:22:21