什么是有效的RFC1123日期格式

问题描述 投票:-1回答:1

我正在处理一个返回expires头的服务。该服务将跨越不同的时区。所以我们需要一种方法来返回比GMT更多的时区。

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

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

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

周五,2019年3月1日15:00:00 +0530

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

http datetime datetime-format datetimeoffset rfc1123
1个回答
2
投票

我猜你使用旧的和过时的RFC 2616作为参考。请记住,此类文件现在已不再适用,并已替换为以下文件:

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


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

5.3. Expires

Expires标题字段给出了响应被视为过时的日期/时间。 [...]

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

 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,GMT是UTC名称的前身; asctime格式的值假定为UTC。 [...]

© www.soinside.com 2019 - 2024. All rights reserved.