Какой действительный формат даты RFC1123 - PullRequest
0 голосов
/ 28 февраля 2019

Я работаю над сервисом, который возвращает истекающий заголовок.Сервис будет работать в разных часовых поясах.Поэтому нам нужен способ вернуть другие часовые пояса, кроме GMT.

Я знаю, что заголовок http должен соответствовать стандартному формату даты RFC1123.Таким образом, сервис возвращает дату, как показано ниже -

Пт, 01 марта 2019 г. 15:00:00 GMT

Мне нужно вернуть дату в следующем формате.

Пт, 01 марта 2019 15:00:00 + 0530

Это допустимая дата для формата даты RFC1123?

1 Ответ

0 голосов
/ 28 февраля 2019

Я полагаю, вы используете старые и устаревшие RFC 2616 в качестве эталона.Пожалуйста, имейте в виду, что в настоящее время такой документ более не актуален и был заменен следующими документами:

По HTTP RFC 7231 , HTTPдаты должны быть выражены в GMT.


Посмотрите, как определяется заголовок Expires в RFC 7234 :

5,3.Истекает

В поле заголовка Expires указывается дата / время, после которого ответ считается устаревшим.[...]

Значение Expires является отметкой времени HTTP-date, как определено в Разделе 7.1.1.1 RFC 7231 .

 Expires = HTTP-date

Дляпример

Expires: Thu, 01 Dec 1994 16:00:00 GMT

Теперь посмотрите следующую цитату из RFC 7231 :

7.1.1.1.Форматы даты / времени

До 1995 года серверы использовали три разных формата для передачи меток времени.Для совместимости со старыми реализациями все три определены здесь.Предпочтительным форматом является подмножество фиксированной длины и одной зоны спецификации даты и времени, используемого форматом сообщений Интернета [RFC5322].

HTTP-date    = IMF-fixdate / obs-date

Примером предпочтительного формата является

Sun, 06 Nov 1994 08:49:37 GMT    ; IMF-fixdate

Примерами двух устаревших форматов являются

Sunday, 06-Nov-94 08:49:37 GMT   ; obsolete RFC 850 format
Sun Nov  6 08:49:37 1994         ; ANSI C's asctime() format

Получатель, который анализирует значение метки времени в поле заголовка HTTP, ДОЛЖЕН принимать все три формата HTTP-date.Когда отправитель генерирует поле заголовка, которое содержит одну или несколько меток времени, определенных как HTTP-date, отправитель ДОЛЖЕН генерировать эти метки времени в формате IMF-fixdate.

Значение даты HTTP представляет время как экземпляр CoordinatedВсемирное время (UTC).Первые два формата обозначают UTC трехбуквенным сокращением для среднего времени по Гринвичу, GMT, предшественника названия UTC;значения в формате asctime предполагаются в формате UTC.[...]

...