Brad Asked: 2016-05-21 12:15:30 +0800 CST2016-05-21 12:15:30 +0800 CST 2016-05-21 12:15:30 +0800 CST 在 CLI 上为 HTTP 标头创建创建符合 RFC 1123 的日期 772 我正在尝试使用标准 unix date(1) 创建一个符合 HTTP 1/1 的日期标头,以便使用 curl 或类似方法将其发布到 RESTful 服务器。 任何想法传递给 date(1) 以使其符合 RFC 1123 的格式? 非常感谢 http bash rfc date 2 个回答 Voted Weihang Jian 2019-11-12T18:32:23+08:002019-11-12T18:32:23+08:00 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。 Best Answer HBruijn 2016-05-21T12:47:23+08:002016-05-21T12:47:23+08:00 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。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