Ответ 1
Файлы cookie включают информацию о часовом поясе с заголовком expires
(главным образом GMT), что делает его довольно простым для клиента, чтобы справиться со смещением к фактическому часовому поясу сервера.
Пример: expires=Mon,20-Jul-2015 22:00:00 GMT
, если 2015-07-20 14:00:00 UTC-8
- время сервера. Когда клиент или сервер решает, истек ли файл cookie или нет, он будет сравнивать его с соответствующим временем GMT.
Я углубился в код System.Web.HttpCookie
и нашел соответствующий код в GetSetCookieHeader()
:
if (_expirationSet && _expires != DateTime.MinValue) {
s.Append("; expires=");
s.Append(HttpUtility.FormatHttpCookieDateTime(_expires));
}
Где HttpUtility.FormatHttpCookieDateTime()
возвращает метку времени UTC (без смещения, что не имеет значения, поскольку смещение будет равно нулю).
Среднее время по Гринвичу (GMT) и скоординированное всеобщее время (UTC) могут, для большинства целей, считаться одинаковыми. Вы можете прочитать об этом здесь.