【问题标题】:What is valid RFC1123 date format什么是有效的 RFC1123 日期格式
【发布时间】:2019-07-22 11:53:37
【问题描述】:

我正在开发一项返回过期标头的服务。该服务将在不同的时区工作。所以我们需要一种方法来返回除 GMT 之外的其他时区。

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

格林威治标准时间 2019 年 3 月 1 日星期五 15:00:00

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

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

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

【问题讨论】:

    标签: http datetime datetime-format datetimeoffset rfc1123


    【解决方案1】:

    我猜你正在使用 oldobsolete RFC 2616 作为参考。请记住,此类文件现在已不再相关,已被以下文件取代:


    根据RFC 7231,HTTP 日期必须以GMT 表示。因此,用 UTC 偏移量表示日期似乎无效。


    查看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) 的一个实例。前两种格式用格林威治标准时间 (GMT) 的三个字母缩写表示 UTC,它是 UTC 名称的前身; asctime 格式的值假定为 UTC。 [...]

    【讨论】:

      猜你喜欢
      • 2012-09-16
      • 1970-01-01
      • 2011-02-04
      • 2015-09-01
      • 2018-09-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多