是否可以检查传入日期是否为UTC时间? Web Api

时间:2013-11-07 19:52:31

标签: c# asp.net asp.net-web-api

我想确保所有发往和来自我的Asp.net Web Api的日期都是UTC时间。

发送部分(来自网络api)并不太难,因为我无法控制,但我不知道当某个第三方发送日期时间时该怎么做。

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

2 个答案:

答案 0 :(得分:2)

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

这可能意味着UTC有一个“Z”标识,“本地时间”没有时区..或者指定了一个完整的时区偏移..或者所有时间都是UTC ..或者它可能意味着什么完全是。

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

答案 1 :(得分:0)

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

如果第三方向您发送DateTime或同等信息,除非他们的协议明确规定它是UTC格式,否则您不能依赖它在UTC中并且必须猜测或查看某些协议文档提示。