Shell脚本将字符串转换为日期时间

时间:2019-05-09 16:59:33

标签: shell unix

我有一个字符串,该字符串的日期的长值存储在一个变量中,例如dt =“ 20190501131050”,想要将其转换为dat以从该值中减去15分钟以成为20190501125550

我尝试使用(date -d)强制转换为日期,但日期无效错误

     dt="20190501131050"
     dt2=$(date -d "$dt" +'%Y%m%d%H%M%S')

1 个答案:

答案 0 :(得分:0)

尝试一下:

#!/bin/sh
dt="20190501131050"
dt=$(echo "$dt" | sed "s/\(....\)\(..\)\(..\)\(..\)\(..\)\(..\)/15 minutes ago \1-\2-\3 \4:\5:\6/")
date -d "$dt" +"%Y%m%d%H%M%S"

说明

将日期分解为单个元素,将它们安排在有效日期,然后减去15分钟。

输出

20190501125550