首页 > 解决方案 > 如何使用 jq 从 JSON 日期中提取年份

问题描述

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

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

标签: jsoncommand-linejq

解决方案


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

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

推荐阅读