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

Bash脚本中实现昨日日期按1小时增量输出时间区间求助

解决Bash脚本生成昨日逐小时时间区间的问题

我来帮你搞定这个需求!其实不需要用时间戳计算分钟,直接固定每小时的起始和结束分钟秒就好,这样更简单直观。下面是完整的脚本,完全符合你要的输出格式:

#!/bin/bash

# 先获取昨日的日期(格式如2018-04-23)
yesterday=$(date -d "1 day ago" +%Y-%m-%d)

# 遍历一天的24个小时
for hour in {0..23}; do
    # 把小时格式化为两位数字(比如把5变成05,保证格式统一)
    formatted_hour=$(printf "%02d" "$hour")
    # 拼接起始时间:昨日日期 + 格式化小时 + 00分00秒 + Z
    FROM_DATE="${yesterday}T${formatted_hour}0000Z"
    # 拼接结束时间:昨日日期 + 格式化小时 + 59分59秒 + Z
    TO_DATE="${yesterday}T${formatted_hour}5959Z"
    # 输出结果
    echo "FROM_DATE : $FROM_DATE"
    echo "TO_DATE : $TO_DATE"
done

脚本说明:

  • 获取昨日日期:用date -d "1 day ago" +%Y-%m-%d一次性拿到昨日的日期字符串,避免多次调用date命令,效率更高。
  • 格式化小时:用printf "%02d"把0-9的小时转换成两位数字(比如0变成00,9变成09),确保时间格式完全符合要求。
  • 拼接时间字符串:因为每小时的起始都是00分00秒,结束都是59分59秒,直接固定这部分字符串即可,不需要复杂的时间计算,既简单又不容易出错。

运行这个脚本后,就能输出你想要的逐小时时间区间啦!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 08:20:45