【发布时间】:2016-08-20 08:32:57
【问题描述】:
我正在开发一个可供不同时区客户使用的 Web API 项目。
假设我们的服务器将在美国,用户可以在任何地方访问该服务。
当我们创建用户时,我们必须设置到期日期。
public DateTime ExpireOn { get; set; }
来自客户并像这样发布日期
{
"expireOn":"2020-12-30"
}
当我检查过期日期时,我正在这样做
if(user.ExpireOn >= DateTime.UtcNow)
{
return true;
}
现在的问题是,如果我从美国以外的地方创建用户。
建议我如何以适当的方式处理到期。
是否有任何标准方法可以为不同时区的用户处理到期日期? 这是解释在用户时间偏移中显示的时区http://www.prideparrot.com/blog/archive/2011/9/how_to_display_dates_and_times_in_clients_timezone的博客
【问题讨论】:
-
您应该将数据发布为 UTC,而不是本地时间戳。
-
其他暗示UTC的答案不一定正确。你需要问问自己——那个日期是什么意思? UTC 的那一天结束?在您业务的时区?在用户的时区?其他时区?只有你能回答这个问题。解决方案因上下文而异。
标签: javascript c# asp.net-mvc asp.net-web-api timezone