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

时间:2017-06-20 06:35:21

标签: bash shell unix unix-timestamp

我正在尝试使用

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

但我得到的输出是

17-06-18

它应该 18-06-17

同样使用

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

输出 17-06-2018

为什么每天都会改变年份,反之亦然?

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

如何将上述日期放在日期格式中。

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

1 个答案:

答案 0 :(得分:3)

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

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/(..)(..)(..)/\3\2\1/g"` +%d-%m-%y

这会在你的可能性之后改变格式..

18-06-17
相关问题