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

使用BASH+jq筛选EST时区下5分钟内创建的JSON条目

解决jq解析EST时间筛选条目问题

错误原因

你使用fromdate时出现格式不匹配错误,是因为fromdate要求时间字符串为带Z后缀的UTC格式(如2024-05-10T16:32:01Z),但你的created_at是EST时区的字符串,既无时区标识也无Z后缀,无法被fromdate解析。

两种解决方案

方案一:纯jq实现(手动指定时区偏移)

通过strptime解析时间字符串为时间数组,转换为时间戳后添加EST/EDT与UTC的偏移量,再和当前时间减5分钟的时间戳比较:

  • 夏令时(EDT,UTC-4)命令:
jq '.[] | select( ( .created_at | strptime("%Y-%m-%dT%H:%M:%S") | mktime ) + 4*3600 >= now - 300 )'
  • 标准时间(EST,UTC-5)命令:
jq '.[] | select( ( .created_at | strptime("%Y-%m-%dT%H:%M:%S") | mktime ) + 5*3600 >= now - 300 )'

方案二:结合bash date工具(自动处理时区/夏令时)

利用date命令自动解析EST时区时间为Unix时间戳,无需手动调整偏移量,兼容性更强:

jq --arg cutoff "$(date -d '-5 minutes' +%s)" '.[] | select( ( .created_at | "date -d \"\(.) America/New_York\" +%s" | system | tonumber ) >= $cutoff )'

注:America/New_York时区会自动识别EST/EDT切换,比直接写EST更可靠。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 05:23:12