什么是有效的RFC1123日期格式

时间:2019-02-28 14:23:30

标签: http datetime datetime-format datetimeoffset rfc1123

我正在处理返回过期标头的服务。该服务将在不同时区工作。因此,我们需要一种返回GMT以外的其他时区的方法。

我知道http标头必须遵循RFC1123标准日期格式。因此该服务返回的日期如下所示-

  

星期五,2019年3月1日15:00:00 GMT

我需要以以下格式返回日期。

  

2019年3月1日星期五15:00:00 +0530

这是RFC1123日期格式的有效日期吗?

1 个答案:

答案 0 :(得分:2)

我猜您正在使用 old 陈旧 RFC 2616作为参考。请记住,此类文件如今已不再适用,并已被以下文件取代:

根据HTTP RFC 7231,HTTP日期必须以GMT表示。


了解如何在Expires中定义RFC 7234标头:

  

5.3. Expires

     

Expires标头字段提供了日期/时间,在该日期/时间之后响应被视为过期。 [...]

     

Expires值是Section 7.1.1.1 of RFC 7231中定义的HTTP-date时间戳。

 Expires = HTTP-date
     

例如

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

现在请参见RFC 7231中的以下引用:

  

7.1.1.1. Date/Time Formats

     

在1995年之前,服务器通常使用三种不同的格式来传递时间戳。为了与旧的实现兼容,此处定义了这三个。首选格式是Internet邮件格式[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日期值将时间表示为协调世界时(UTC)的实例。前两种格式使用格林威治标准时间(格林威治标准时间)的三字母缩写表示UTC,格林威治标准时间是UTC名称的前身。 asctime格式的值假定为UTC。 [...]