Bash
在 CLI 上為 HTTP 標頭創建創建符合 RFC 1123 的日期
我正在嘗試使用標準 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'
%T
相當於%H:%M:%S
。%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。