vto*_*ola 19 .net asp.net globalization gmt
我应该在使用DateTime.Now或DateTime.UtcNow HttpCookie.Expires和HttpCachePolicy.SetExpires?
Cookies正在发送'GMT'时间,但我不知道如果我发送的DateTime.Now.AddDays(3)话会发生什么,如果我在GMT + 5.与Expires HTTP标头相同(第14.21节).
我该怎么用?
Rob*_*ine 17
在这种情况下无关紧要.
在内部,首先要做的.SetExpires是将提供的日期时间转换为UTC,然后再将其设置在cookie上.
请记住,只要您的日期时间使用者正确使用DateTime类,那么两者是相同的 - 它只是一个"基线"到UTC而另一个不是:
20110701T14:00:00-1:00 (British Summer Time)
Run Code Online (Sandbox Code Playgroud)
和
20110701T13:00:00+0:00 (UTC)
Run Code Online (Sandbox Code Playgroud)
表示完全相同的日期时间,即UTC时间下午1点.
只要消费者正确地处理这个(看起来好像已经看过反射器)那么它没有任何区别.
如果你把它作为一个时间字符串传递给它,当然,它可能会有所作为,但在这种情况下不是.
您可以使用以下代码查看效果(假设您自己不是UTC - 如果您 - 更改您的设置以进行测试!).一旦您要求将其转换为UTC,它们都会输出相同的日期时间.
WriteDateTime(DateTime.Now);
WriteDateTime(DateTime.UtcNow);
public static void WriteDateTime(DateTime dateTime)
{
Console.WriteLine(dateTime.ToUniversalTime().ToLongTimeString());
}
Run Code Online (Sandbox Code Playgroud)