【问题标题】:How increment hours in a datetimstamp?如何在日期时间戳中增加小时数?
【发布时间】:2013-12-15 11:53:27
【问题描述】:
  1. 我有一个文件,其中包含 YYYYMMDDhhmmss.sss 中的时间
  2. 我使用以下命令仅从文件中获取小时/分钟 开始=grep -i "XYZ" | head -1 | awk '{print $3}' | cut -c9-12
  3. 开始变量将包含小时/分钟数(例如:- 1041 [HHMM])
  4. 我的任务是将这个时间增加 60 分钟。

请帮我这样做。我没有使用系统日期。

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

但是这个逻辑是错误的,因为它会像普通数字一样添加。将时间转换为秒也是一项乏味的工作。有没有办法通过系统命令增加?请提出建议。

【问题讨论】:

    标签: shell ksh aix


    【解决方案1】:

    60 分钟等于 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"
    

    【讨论】:

    • 嘿,非常感谢。如果我必须在$start$newTime 之间进行某些操作,我该怎么做?请帮忙
    猜你喜欢
    • 2020-05-03
    • 2023-03-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-08
    • 2022-07-02
    • 1970-01-01
    • 2014-10-15
    相关资源
    最近更新 更多