如何将YYYYMMDDHHMMSS转换为'date`可读的日期

Use*_*er1 2 linux bash date sed

我有一组YYYYMMDDHHMMSS格式的日期/时间字符串,我希望将其转换为date实用程序可读的内容.通常,我可以这样做:

date -d "2010-10-01 12:34:56"

但是,date不喜欢YYYYMMDDHHMMSS:

date -d "20100101123456"..失效日期

所以,我可能需要将字符串细化为先前格式.我在想sed是答案,但它变得非常丑陋.我很确定我的字符串是正确的格式,所以如何轻松转换它们?

chr*_*ris 8

日期不允许 "YYYYMMDDHHMMSS",但它确实 "YYYYMMDD HH:MM:SS",那么:

D="20100101123456"
date -d "${D:0:8} ${D:8:2}:${D:10:2}:${D:12:2}"
Run Code Online (Sandbox Code Playgroud)