我应该在HttpCookie.Expires
和HttpCachePolicy.SetExpires
中使用DateTime.Now还是DateTime.UtcNow
Cookies are sending 'GMT'时间,但我不知道如果我在GMT+5中发送DateTime.Now.AddDays(3)
会发生什么。Expires HTTP header (sec 14.21)也是如此。
我应该使用什么?
发布于 2011-01-31 19:07:26
在这种情况下,这并不重要。
在内部,.SetExpires
做的第一件事是将您提供的日期时间转换为UTC,然后在cookie上设置它。
请记住,只要您的datetime使用者正确地使用了DateTime类,那么这两个类就是相同的-只是其中一个是“基线”到UTC,而另一个不是:
20110701T14:00:00-1:00 (British Summer Time)
和
20110701T13:00:00+0:00 (UTC)
表示完全相同的日期时间,即UTC下午1点。
只要消费者正确地处理了这一点(看起来是这样,看过反射器),那么就没有区别了。
如果您将其作为时间字符串传递,那么当然,它可能会有很大的不同,但在本例中不是这样。
您可以使用以下代码看到效果(假设您自己不在UTC中-如果您在UTC中-请将您的设置更改为test!)。一旦您请求将其转换为UTC,它们都会输出相同的日期时间。
WriteDateTime(DateTime.Now);
WriteDateTime(DateTime.UtcNow);
public static void WriteDateTime(DateTime dateTime)
{
Console.WriteLine(dateTime.ToUniversalTime().ToLongTimeString());
}
https://stackoverflow.com/questions/4849744
复制相似问题