我想将17/08/2021 23:42:32
转换为epoch,但它会抛出错误
root@OpenWrt:~# var="17/08/2021 23:42:32"
root@OpenWrt:~# date -d "${var}" +"%s"
date: invalid date _17/08/2021 23:42:32_
如何修复?
Linux在某些地区支持%d/%m/%Y
格式的输出,但不支持输入。显示为
LC_ALL="es_CR" locale -c d_fmt
而
% d/Y % m/%
输入
失败LC_ALL="es_CR" date -d '17/08/2021 21:45'
日期:无效日期'17/08/2021 21:45'
对于-d开关,支持US格式,所以您的选择是反转%d/%m
var=$(echo '17/08/2021 21:45' | sed -re 's@([0-9]{2,2})/([0-9]{2,2})/([^/]+)@2/1/3@')
date -d "${var}" +"%s"
1629247500
或者
IFS='/' read -r -a array <<< "17/08/2021 21:45"
date -d "${array[1]}/${array[0]}/${array[2]}" '+%s'
1629247500