GNU/Linux中如何读取指定日期并生成次日指定时间的变量
GNU/Linux 实现次日指定时间的日期处理
你的需求是读取yyyymmdd格式的输入日期,生成次日指定时间(比如上午11点)并存储到变量中,原命令针对的是下周五的时区时间,和需求不匹配,以下是修改后的实现方案:
步骤说明
- 读取用户输入的
yyyymmdd格式日期 - 通过
date命令基于输入日期计算次日,并指定目标时间 - 将结果存入变量,可按需指定时区
具体命令示例
1. 基础版本(不指定时区)
# 读取输入日期 read -p "输入yyyymmdd格式日期: " input_date # 生成次日上午11点的日期时间,存入变量 next_day_11am=$(date -d "$input_date +1 day 11:00" +"%Y%m%d %H:%M") # 查看结果 echo "次日11点: $next_day_11am"
2. 指定时区版本(比如EST)
read -p "输入yyyymmdd格式日期: " input_date # 基于EST时区生成次日上午11点的日期时间 next_day_11am_est=$(TZ="EST" date -d "$input_date +1 day 11:00" +"%Y%m%d %H:%M") echo "EST时区次日11点: $next_day_11am_est"
关键参数解释
-d "$input_date +1 day 11:00":让date命令基于输入日期,向后偏移1天,并将时间设置为11:00+"%Y%m%d %H:%M":指定输出格式,可根据需求调整,比如只需要日期字符串就用+"%Y%m%d"TZ="EST":临时设置命令执行时的时区,不影响系统全局时区
注意事项
- 原命令中的
—date是长破折号,正确写法应为-d或--date(两个短破折号) - 引号使用要统一,避免单双引号混用导致的解析错误
内容的提问来源于stack exchange,提问作者sabarish tr
相关产品推荐
相关产品推荐

