我应该如何让 date 命令使用与 rdiff-backup 相同的格式?

我应该如何让 date 命令使用与 rdiff-backup 相同的格式?

rdiff-backup命令通过创建多个标题中包含日期戳的文件来创建增量备份。日期戳的格式在关于日期时间的 W3 注释,其本质为:

完成日期加上小时,分钟和秒:

YYYY-MM-DDThh:mm:ssTZD(例如 1997-07-16T19:20:30+01:00)

中间的 T 是文字“T”,表示时间从此点开始。

我希望能够使用date命令来镜像此格式。到目前为止,我已经:

date '+%FT%T%:z'

如果我处于 GMT/UTC 以外的任何时区,它都能很好地工作并以预期的格式提供输出。

当处于 GMT/UTC 时区时,末尾的时区字符串应该输出为字母Z而不是当前的+00:00

我确信我可以通过使用单独的命令获取时区部分date并在其与 +00:00 匹配时更改它来做到这一点,或者如果我将字符串保存为变量,则使用某种参数扩展,或者甚至使用tr。命令选项中是否有直接的方法date,如果没有,我应该如何简单地实现这一点?

答案1

我不认为 GNU date 有任何选项可以Z代替 UTC 时区进行打印。使用以下命令很容易sed

$ date '+%FT%T%:z'       
2017-01-24T14:06:39+00:00
$ date '+%FT%T%:z' | sed 's/+00:00$/Z/'                            
2017-01-24T14:07:52Z

相关内容