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



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

export START_DATE=`cat ${WINDOW_END_FILE}`

时间戳格式

2019-04-03-23.59.59

最后,我希望日期是

2019-04-04-00.00.00

将日期转换为纪元时间,然后添加 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"

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

如果我明白了,我们就说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

使用 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将日期规格 ( YYYY MM DD HH MM SS [DST] ( 转换为自系统纪元以来的秒数。 strftime将时间戳格式化为给定格式。

最新更新