Bash

在 CLI 上為 HTTP 標頭創建創建符合 RFC 1123 的日期

  • January 26, 2021

我正在嘗試使用標準 unix date(1) 創建一個符合 HTTP 1/1 的日期標頭,以便使用 curl 或類似方法將其發佈到 RESTful 伺服器。

任何想法傳遞給 date(1) 以使其符合 RFC 1123 的格式?

非常感謝

man date對於您的作業系統提供的任何日期版本,並使用正確的開關man strftime從左到右列印(請參閱 參考資料),每個日期之間有一個空格,首先是日期:

日(三字母縮寫 Mon-Tue-Wed…)後跟逗號,

月份(三字母縮寫 Jan Feb Mar …)

年份(4 位表示法 1970、1971 …)

然後是 time HH:MM:SS

你可能會得到類似的東西Fri, 20 May 2016 20:22:33 GMT

env TZ=GMT; date '+%a, %d %b %Y %T %Z'

  1. %T相當於%H:%M:%S
  2. %Z替換為時區名稱。

DATE=$(date -u +%a,\ %d\ %b\ %Y\ %H:%M:%S\ GMT)如果您的系統的時區設置不是 GMT ,@brad 的解決方案將不正確。例如:

env TZ=Asia/Taipei; date -u +%a,\ %d\ %b\ %Y\ %H:%M:%S\ GMT

%H:%M:%S輸出為 GMT 時為 GMT+8,但應為 CST。

引用自:https://serverfault.com/questions/778104