我想确保所有发往和来自我的Asp.net Web Api的日期都是UTC时间。
发送部分(来自网络api)并不太难,因为我无法控制,但我不知道当某个第三方发送日期时间时该怎么做。
我想知道是否有办法验证它?
答案 0 :(得分:2)
除非时区信息已已包含在协议中或以其他方式限制/指示。
这可能意味着UTC有一个“Z”标识,“本地时间”没有时区..或者指定了一个完整的时区偏移..或者所有时间都是UTC ..或者它可能意味着什么完全是。
(这就是为什么我几乎完全删除了DateTimeOffset的DateTime,并且包含我的协议设计中的时区偏移,只要这些必须在外部传输。)
答案 1 :(得分:0)
您可以使用DateTimeOffset
对象来执行此操作。由于您是API的设计者,我强烈建议您包含此信息。它对其他人有帮助,如果您将DB Server用于DBMS,则可以使用DATETIMEOFFSET
来确保一致性。
如果第三方向您发送DateTime
或同等信息,除非他们的协议明确规定它是UTC格式,否则您不能依赖它在UTC中并且必须猜测或查看某些协议文档提示。