1

我想确保发送到我的 Asp.net Web Api 和从我的 Asp.net Web Api 发送的所有日期都是 UTC 时间。

发送部分(来自 web api)并不太难,因为我可以控制它,但我不确定当某些 3rd 方发送日期时间时该怎么做。

我想知道是否有办法验证它?

4

2 回答 2

2

除非时区信息已经包含在协议中或以其他方式限制/指示。

这可能意味着 UTC 有一个“Z”指定,而“本地时间”没有时区 .. 或者指定了完整的时区偏移量 .. 或者所有时间都在 UTC .. 或者它可能意味着完全不同的东西。

(这就是为什么我几乎完全放弃了 DateTime 为 DateTimeOffset 并在我的协议设计中包含一个时区偏移,只要这样必须从外部传输。)

于 2013-11-07T19:57:18.627 回答
0

您可以使用DateTimeOffset对象来执行此操作。由于您是 API 的设计者,我强烈建议您包含此信息。它对其他人很有帮助,如果您将 SQL Server 用于 DBMS,则可以使用它DATETIMEOFFSET来确保一致性。

如果第三方向您发送了一个DateTime或等效的,除非他们的协议明确声明它是 UTC,那么您不能依赖它是 UTC 并且必须做出猜测或查看协议文档以获取一些提示。

于 2013-11-07T19:58:25.020 回答