我们创建了这样的日期格式:releaseVersion=$(date +%y%m%d%H%M)
结果是2105231450
如何将其转换回iso格式
我正在尝试date -d '2105031452' +'%y%m%d%H%M'
,但得到了date: invalid date ‘2105031452’
最终格式应该是2021-05-23 14:50
我该怎么做?
由于这是bash,另一个选项是对子字符串索引使用参数扩展,例如
r=2105231450; isodate="20${r:0:2}-${r:2:2}-${r:4:2} ${r:6:2}:${r:8:2}:00"
然后:
$ date -d "$isodate"
Sun May 23 14:50:00 CDT 2021
假设年份发生在本世纪,我会使用字符串操作:
$ echo '2105231450' | sed -E 's/(..)(..)(..)(..)(..)/201-2-3 4:5/'
2021-05-23 14:50
在MacOS上,
$ date -j -f %y%m%d%H%M 2105311209 +%Y-%m-%d %H:%M
2021-05-31 12:09
请注意,-f用于指定输入格式。
$ time=2105231450
$ date -d "${time:0:6} ${time:6:4}"
Sun 23 May 14:50:00 CEST 2021
$ date -d "${time:0:6} ${time:6:4}" +"%Y-%m-%d %H:%M"
2021-05-23 14:50
https://www.gnu.org/software/coreutils/manual/html_node/General-date-syntax.html#General-日期语法
d0=";2105031452";;日期"+%Y-%m-%d%H:%m"-d"${d0:0:6}${d0:7}";