设置:Windows Server 2003 / SQL Server 2005. ASP.NET 2.0。 IIS 6。
我正在处理的网站使用ASP.NET Membership,当用户创建时,它会被插入到aspnet_membership数据库中。
所有服务器都设置为中央时间。我还通过在SQL Server上执行Select GetDate()
来验证这一点,并且它返回了中央时间。
但是,当用户插入aspnet_membership时,他们的CreateDate会在GMT中列出。 (格林威治标准)。
我查看了代码,并且在创建成员的任何地方都有否 DateTime.Now.AddHours(6);
。
会员资格默认使用GMT吗?这可以在某处改变吗?使用GMT有什么好处吗?我没有在用户方面做任何时区细节,所以我认为不需要它。
无论如何,如果你对我所忽视的东西有任何想法,我将不胜感激。
谢谢!
答案 0 :(得分:1)
使用UTC(不是GMT)还有一个额外的好处,就是您不必担心夏令时。
如果你查看dbo.aspnet_Membership_CreateUser存储过程,你会发现一个@CurrentTimeUtc参数,这告诉我ASP.NET成员资格中的所有日期时间都是UTC。
您可以使用DateTime.ToLocalTime转换为本地(服务器)时间。
答案 1 :(得分:1)
会员资格会自动使用UTC,如本文所述: http://aspnet.4guysfromrolla.com/articles/041608-1.aspx