我正在构建AWS中的EBS卷列表。
我需要将创建时间设置为更加用户友好的格式。管理层抱怨时间不可读。
如果运行此命令,则将以以下格式显示创建卷的时间:
aws ec2 describe-volumes --volume-ids vol-066e24cb8d2294605 | jq -r '.Volumes[].CreateTime'
2018-12-11T18:54:26.110Z
我正在尝试使用strftime格式化时间,但是它不起作用。我得到的是这个错误:
aws ec2 describe-volumes --volume-ids vol-066e24cb8d2294605 | jq -r '.Volumes[] | .CreateTime | strftime ("%Y-%m-%d %H:%M:%S")'
jq: error (at <stdin>:39): strftime/1 requires parsed datetime inputs
我遇到什么问题?给定AWS提供给我的时间格式,如何创建用户友好的时间?
答案 0 :(得分:0)
您首先必须解析字符串。您可以使用strptime
。这是如何执行此操作的说明:
<<< '"2018-12-11T18:54.11Z"' jq -c '
strptime("%Y-%m-%dT%H:%M.%SZ")'
[2018,11,11,18,54,11,2,344]
这与您的需求不完全匹配,因为在这种情况下,“%S”具有特定含义:
%S The second as a decimal number (range 00 to 60).
(The range is up to 60 to allow for occasional leap seconds.)
因此,您似乎可能需要修改输入的日期时间字符串,例如:
if test("\\....Z$") then sub(".Z$"; "Z") else . end
| strptime("%Y-%m-%dT%H:%M.%SZ")
| strftime("%Y-%m-%d %H:%M:%S")