代码之家  ›  专栏  ›  技术社区  ›  Jack Marchetti

ASP.NET/SQL时区之谜

  •  0
  • Jack Marchetti  · 技术社区  · 15 年前

    安装程序:Windows Server 2003/SQL Server 2005。ASP.NET 2。IIS 6。

    我正在处理的网站使用ASP.NET成员身份,当创建用户时,它将插入到ASPNET U成员身份数据库中。

    所有服务器都在中心时间设置。我也通过做一个 Select GetDate() 在SQL Server上,它返回中心时间。

    但是,当用户被插入到aspnet_成员中时,他们的创建日期将以gmt(格林威治标准)列出。

    我已经看过密码了 DateTime.Now.AddHours(6); 与创建成员关联的任何位置。

    会员资格默认使用格林威治标准时间吗?这个可以换个地方吗?使用GMT有什么好处吗?我没有在用户方面做任何时区的细节,所以我认为没有必要这样做。

    不管怎样,如果你对我所忽略的事情有任何想法,我将不胜感激。

    谢谢您!

    2 回复  |  直到 15 年前
        1
  •  1
  •   David    15 年前

    成员资格会自动使用UTC,如本文所述: http://aspnet.4guysfromrolla.com/articles/041608-1.aspx

        2
  •  1
  •   Paul van Brenk    15 年前

    使用UTC(而不是格林尼治标准时间)还有一个额外的优势,即您不必担心日光节约。

    如果您查看dbo.asp net_membership_createuser存储过程,您会发现一个@currentTimeUtc参数,这让我觉得ASP.NET成员资格中的所有日期时间实际上都是UTC。

    你可以使用 DateTime.ToLocalTime 转换为本地(服务器)时间。