我正在从文件中读取时间戳,我想将该值复制到START_DATE变量,然后将该值加1秒。
export START_DATE=`cat ${WINDOW_END_FILE}`
时间戳格式
2019-04-03-23.59.59
最后,我想确定日期
2019-04-04-00.00.00
答案 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
将时间戳格式化为给定格式。