如何使用 jq 从 JSON 日期中提取年份

How to to extract the year from JSON date using jq

我有一堆 JSON 日期为 ISO 格式。如何只打印日期的年份部分?

$ echo '{"createdDate": "2005-09-28T16:34:40Z"}' | jq '{ createdYear: ??? }'
{
  "createdYear": "2005"
}

使用strptime将日期字符串转换为日期对象,然后strftime格式化日期:

$ echo '{"createdDate": "2005-09-28T16:34:40Z"}' |
    jq '
       { createdYear: .createdDate
           | strptime("%Y-%m-%dT%H:%M:%SZ")
           | strftime("%Y") }'
{
  "createdYear": "2005"
}

为什么不只是:

{createdYear: .createdDate[0:4]}