You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

将ISO8601日期时间转为数字字段遇jq语法错误,求解决方案

解决jq日期转数字字段的语法错误及替代方法

先修正你的语法错误

你遇到的编译错误是因为formatdate的参数iso8601未加引号,jq要求字符串类型的参数必须用引号包裹。修正后的表达式如下:

"test": (.int.example_t | formatdate "iso8601" | tonumber)

其他日期转数字的方法

方法1:用strptime+mktime自定义解析(兼容多数jq版本)

如果.int.example_t是特定格式的日期字符串,比如"2024-05-20T14:30:00Z",可以先通过strptime解析日期结构,再用mktime转换为Unix时间戳(数字):

"test": (.int.example_t | strptime "%Y-%m-%dT%H:%M:%SZ" | mktime)

注意:需要根据你的实际日期格式调整strptime的格式占位符(比如%Y代表4位年份,%m代表两位月份)。

方法2:使用fromdateiso8601(jq 1.6及以上版本可用)

如果你的jq版本≥1.6,官方提供了专门处理ISO 8601格式日期的函数fromdateiso8601,可以直接将标准ISO 8601字符串转为数字时间戳,写法更简洁:

"test": (.int.example_t | fromdateiso8601)

内容的提问来源于stack exchange,提问作者Light Ee

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.24 03:57:05