如何将 bash 字符串转换为日期格式?

How to convert a bash string to date format?

我有一个 bash 字符串 20220416124334(该字符串不是纪元),我想将其转换为日期格式,因此它应该如下所示:2022/04/16 12:43:34

我试过:

[manjaro@manjaro ~]$ date -d '20220416124334' "+%Y/%m/%d %H:%M:%S"
date: invalid date ‘20220416124334’

我应该如何正确操作?

我希望在您使用 date 命令时使用它,并使用一个数字表示自纪元以来的秒数。您的电话号码似乎是格式化日期 yyyymmddhhmiss.

如果您不需要验证表示格式化日期的字符串,那么您可以使用 sed 插入额外的格式字符:

echo '20220416124334' | sed -E 's/(....)(..)(..)(..)(..)(..)/\/\/ ::/'

如果您最终将自 epoch 以来的秒数作为输入,那么请这样做,请记住,数字表示一年中不同时间不同时区的不同时间(眼珠):

date -u -r 1650113014 "+%Y/%m/%d %H:%M:%S"