从文件中读取日期时间并添加一秒钟

时间:2019-04-04 16:28:56

标签: linux bash shell

我正在从文件中读取时间戳,我想将该值复制到START_DATE变量,然后将该值加1秒。

export START_DATE=`cat ${WINDOW_END_FILE}`

时间戳格式

2019-04-03-23.59.59

最后,我想确定日期

2019-04-04-00.00.00

3 个答案:

答案 0 :(得分:1)

将日期转换为纪元时间,然后添加1:

fmt='%Y-%m-%d-%H.%M.%S' 
date -j -f %s $(( $(date -j -f "$fmt" 2019-04-03-23.59.59 +%s) + 1 )) +"$fmt"

答案 1 :(得分:0)

好的,这并不漂亮,但是很有趣:

如果我理解的话,我们就说START_DATE=2019-04-03-23.59.59

# Pull Date section
date=$(echo $START_DATE | cut -d - -f 1-3)
# Pull Time section
time=$(echo $START_DATE | cut -d - -f 4 | sed 's/\./:/g')
# Use bash builtin date function for conversion
date -d "$cal $time + 1 second" +"%Y-%m-%d-%H-%M-%S"

输出:

2019-04-04-00-00-00

答案 2 :(得分:0)

使用GNU awk:

$ gawk '{
    gsub(/[^0-9]/," ")                          # change the format mktime friendly
    print strftime("%F-%H.%M.%S",mktime($0)+1)  # to epoch, add one, reformat back
}' file                                         # a timestamp from a file
2019-04-04-00.00.00                             # output this time

mktime将datespec(YYYY MM DD HH MM SS [DST])转换为自系统纪元以来的秒数。 strftime将时间戳格式化为给定格式。