我可以使用日期以 YYYYMMDDHHMM 格式转换日期吗?

Jer*_*emy 1 date

我有一个格式为 YYYYMMDDHHMM 的日期。例如,201607131001将是10:01 AM July 13, 2016。有什么方法可以使用该date实用程序来格式化时间戳吗?

Ste*_*ris 9

假设您有 GNU 日期,我们需要在日期和时间之间添加一个空格并将其传递给 -d

$ date -d "20160713 1001"
Wed Jul 13 10:01:00 EDT 2016
Run Code Online (Sandbox Code Playgroud)

我们可以通过参数扩展很容易地进行拆分。例如

$ d=201607131001
$ date -d "${d%????} ${d#????????}"
Wed Jul 13 10:01:00 EDT 2016
Run Code Online (Sandbox Code Playgroud)

然后您可以使用标准+格式字符串以您想要的格式获取它(man date解释所有选项)。

$ d=201607131001
$ date -d "${d%????} ${d#????????}" +"%I:%M %p %B %d, %Y"
10:01 AM July 13, 2016
Run Code Online (Sandbox Code Playgroud)