【问题标题】:Force OData DateTime format强制 OData 日期时间格式
【发布时间】:2020-10-04 21:55:22
【问题描述】:

是否可以强制日期时间在 OData 中的显示方式同时保留 IQueryable<> 的所有功能?

实际上,我创建了一个基本端点来公开数据库中的数据。其中一个属性是 DateTime 并且显示如下:

"MyDate": "2017-01-07T00:00:00",

但是,我想用另一种 DateTime 格式显示它,例如 dd/MM/yyyy

我尝试了this promising answer,但是当我使用 Postman 调用我的端点时,我的属性仍然具有相同的不受欢迎的格式。

如何在 OData 中强制 DateTime 格式,同时保留对该列的 OData 过滤,并让客户端决定查询,例如,所有 MyDate>= n 天的数据?

【问题讨论】:

  • 你为什么想要不同的格式?
  • 显示日期不是 OData 的用途。 OData 用于传输数据。 ASP.NET MVC(因为它在您的标签中)用于获取 OData 传输的数据并显示它。

标签: c# asp.net-mvc datetime odata date-formatting


【解决方案1】:

但是,我想用另一种 DateTime 格式显示它,例如 dd/MM/yyyy

那就不要直接显示了。 odata 中的日期格式在规范中定义,您的代码是否知道会发生什么,然后可以将其格式化以供公众使用(如果它希望显示它)。标准的整个概念是使用它的人知道会发生什么。特别是 - 如果您手动编写类来使用它们,那么您做错了,odata 背后的想法是代码生成器生成客户端代码,并且它需要知道要解析的内容(到 javascript odata 类中)。

Odata 不应该直接呈现给用户。日期格式是标准的一部分。改了就不是odata了。

哦,还有一个注意事项:你看到的日期时间格式实际上是一个标准,Javascript 有方法和库来操作它们。这是您想要这个的另一个原因。您的自定义格式是您必须自己编写所有库的内容。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-01
    • 2015-12-03
    • 1970-01-01
    • 1970-01-01
    • 2013-04-23
    相关资源
    最近更新 更多