如何在日期时间戳中增加小时数?

时间:2013-11-29 10:05:42

标签: shell ksh aix

  1. 我的文件包含YYYYMMDDhhmmss.sss
  2. 中的时间
  3. 我使用以下命令从文件中仅获取数小时/分钟      开始= grep -i "XYZ" | head -1 | awk '{print $3}' | cut -c9-12
  4. 起始变量将包含小时/分钟数(例如: - 1041 [HHMM])
  5. 我的任务是将这个时间增加60分钟。
  6. 请帮我这样做。我没有使用系统日期。

    这是我试过的, 开始= grep -i "XYZ" | head -1 | awk '{print $3}' | cut -c9-12 结束= $(($ start)+ 3600)

    但这种逻辑是错误的,因为它会像正常数字一样增加。将时间转换为秒也将是一项繁琐的工作。有没有办法通过系统命令增加?请建议。

1 个答案:

答案 0 :(得分:0)

60分钟是1小时,所以您需要做的就是将小时增加1。这可以通过将100添加到HHMM时间来完成,如下所示:

start="$1"

# add 100 to the start time to increment the hour
newTime=$((10#$start+100))

# check if we have crossed midnight
if (( newTime >= 2400 )); then
    newTime=$((newTime-2400))
fi

#pad with leading zero
newTime="$(printf %04d $newTime)"

echo "$newTime"