我正在处理返回过期标头的服务。该服务将在不同时区工作。因此,我们需要一种返回GMT以外的其他时区的方法。
我知道http标头必须遵循RFC1123标准日期格式。因此该服务返回的日期如下所示-
星期五,2019年3月1日15:00:00 GMT
我需要以以下格式返回日期。
2019年3月1日星期五15:00:00 +0530
这是RFC1123日期格式的有效日期吗?
答案 0 :(得分:2)
我猜您正在使用 old 和陈旧 RFC 2616作为参考。请记住,此类文件如今已不再适用,并已被以下文件取代:
根据HTTP RFC 7231,HTTP日期必须以GMT表示。
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中的以下引用:
在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。 [...]