这种情况并不重要。
在内部,.SetExpires
所做的第一件事是将您提供的日期时间转换为UTC,然后将其设置在cookie上。
请记住,只要你的datetime消费者正确使用DateTime类,那么这两个是相同的 - 它只是一个“基线”为UTC,另一种是没有:
20110701T14:00:00-1:00 (British Summer Time)
和
20110701T13:00:00+0:00 (UTC)
代表完全相同的日期时间,即下午1点UTC。
只要消费者正确地处理了这个问题(它看起来好像在反射镜中看过),那么它就没有区别。
如果你正在接受这个并且把它作为一个时间字符串传递进去,那么当然,它可能会有所作为,但在这种情况下不会。
您可以使用以下代码查看效果(假设您自己不是UTC - 如果是的话) - 将您的设置更改为测试!)。一旦您要求将其转换为UTC,它们都会输出相同的日期时间。
WriteDateTime(DateTime.Now);
WriteDateTime(DateTime.UtcNow);
public static void WriteDateTime(DateTime dateTime)
{
Console.WriteLine(dateTime.ToUniversalTime().ToLongTimeString());
}
我知道。问题是,即使在MSDN页面中,他们也使用DateTime.Now http://msdn.microsoft.com/en-us/library/system.web.httpcookie.expires.aspx,这就是我的错误。我不知道他们是否不在意o如果HttpCookie.Expires已经转变为GMT:P – vtortola 2011-01-31 10:54:24
-1 - 我不相信这是正确的 - 它不应该有任何区别,你使用。 – 2011-01-31 11:18:40