更改日期格式 date -d '180617' +%d-%m-%Y in Shell

Changing date format date -d '180617' +%d-%m-%Y in Shell

我正在尝试使用

更改日期格式的字符串
date -d '180617' +%d-%m-%y

但我得到的输出是

17-06-18

而应该是 18-06-17

同样使用

  date -d '180617' +%d-%m-%Y

输出为17-06-2018

为什么将日更改为年,反之亦然?

就我而言, 文件中的日期采用以下格式,即 date +%d%m%y%H%M%S。因为我无法更改所有传入文件的字符串格式。

如何把上面的日期变成日期格式。

例如。对于字符串 '150617230001' 我希望日期为“15-06-2017”

你误解了日期命令中的选项格式。

date -d "format" 应该如下所示:

date -d "yymmdd"

这就是为什么,您的日期会变成您格式中的年份数字。

date -d '170618' +%d-%m-%y

这为您提供了正确的输出。

到目前为止,您无法更改脚本中的格式,评论中说,这是您需要的代码。

date -d `date +%d%m%y%H%M%S | cut -c1-6| sed -E "s/(..)(..)(..)//g"` +%d-%m-%y

这会根据您的可能性更改格式..

18-06-17