如何处理到期日的时差?

时间:2016-04-26 13:20:46

标签: javascript c# asp.net-mvc asp.net-web-api timezone

我正在开发一个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

中显示的时区的博客

2 个答案:

答案 0 :(得分:0)

您必须强制使用UTC时区(协调世界时)来调用您的API。

我还建议使用ISO 8601等标准。

答案 1 :(得分:0)

使用协调世界时(UTC)从API发送数据将确保日期不受时区影响

您可以使用JavaScript获取UTC日期:

var myDate = new Date(); // Set this to your date in whichever timezone.
var utcDate = myDate.toUTCString();