0

设置:Windows Server 2003 / SQL Server 2005。ASP.NET 2.0。IIS 6。

我正在处理的站点使用 ASP.NET Membership,当创建用户时,它被插入到 aspnet_membership 数据库中。

所有服务器都设置在中央时间。我还通过Select GetDate()在 SQL Server 上执行验证了这一点,它返回了中央时间。

但是,当用户插入 aspnet_membership 时,他们的 CreateDate 会在 GMT 中列出。(格林威治平均值)。

我查看了代码,没有与创建成员相关的任何地方 DateTime.Now.AddHours(6);

默认情况下,会员资格是否仅使用 GMT?这可以在某个地方改变吗?使用 GMT 有什么好处吗?我没有在用户方面做任何时区细节,所以我认为没有必要。

无论如何,如果您对我忽略的内容有任何想法,将不胜感激。

谢谢!

4

2 回答 2

1

使用 UTC(不是 GMT)还有一个额外的好处,就是您不必担心夏令时。

如果您查看 dbo.aspnet_Membership_CreateUser 存储过程,您会发现一个 @CurrentTimeUtc 参数,它向我暗示 ASP.NET Membership 中的所有日期时间确实是 UTC。

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

于 2009-07-28T01:45:10.687 回答
1

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

于 2009-07-28T01:47:03.353 回答