C# OData日期时间筛选器Edm.字符串错误?

C# OData日期时间筛选器Edm.字符串错误?,c#,datetime,uri,odata,C#,Datetime,Uri,Odata,我正在OData中编写一个DateTime筛选器查询,如下所示: ... + "$filter=SubmitTime lt datetime'2014-12-30T23:59:59.99Z'" 并遇到以下错误: 我确实遵循了OData格式指南和其他在线参考,并且我编写的字符串与指南一致 这是由dll版本引起的问题吗?就像这篇文章所说的: 我使用的Microsoft.OData.Edm.dll版本是: 运行时版本:v4.0.30319 版本:6.3.0.0 有什么想法吗? 谢谢 您似乎正在使

我正在OData中编写一个DateTime筛选器查询,如下所示:

... + "$filter=SubmitTime lt datetime'2014-12-30T23:59:59.99Z'"
并遇到以下错误:

我确实遵循了OData格式指南和其他在线参考,并且我编写的字符串与指南一致

这是由dll版本引起的问题吗?就像这篇文章所说的:

我使用的Microsoft.OData.Edm.dll版本是: 运行时版本:v4.0.30319 版本:6.3.0.0

有什么想法吗?
谢谢

您似乎正在使用实现ODatav4的OData库。 在ODataV4规范中,不存在DateTime基元类型,只有DateTimeOffset

你能试试这个网址吗:

…?$filter=SubmitTime lt 2014-12-30T23:59:59.99Z

这很有效!非常感谢。我在ODataV4规范()中没有找到这样的信息,这是从哪里来的?谢谢我还有一个问题,除了datetime字符串(如2014-12-30T23:59:59.99Z)之外,datetime比较中OData查询是否还支持其他格式,例如,如果我想按utc总节拍进行比较,而不是显式的datetime字符串,那么查询应该是什么样子?@RainCast您可以在这里找到相关信息:(),也可以在ABNF()中找到相关信息@RainCast关于你的另一个问题,OData支持很多关于DatatimeOffset的函数,你可以在上面的文档中找到。但我没有找到如何返回utc总节拍……我的API返回日期如下“2016-07-30T12:52:16.007”。那我怎样才能正确地投下它呢?