如何正确地在shell中格式化字符串到日期

时间:2017-03-03 00:13:34

标签: bash shell

我使用date +"%Y%m%d%H"生成字符串并读取相同的字符串以转换回日期。某种程度上反向不起作用。和%Y被视为前六个字符

# date +"%Y%m%d%H"
2017030216

# date -d 2017030215 +%Y
201703

# date -d 2017030215 +%m
02

为什么2017年没有回归?

1 个答案:

答案 0 :(得分:2)

您将无效字符串传递给-d,即不符合预期格式的字符串。该格式的文档位于:https://www.gnu.org/software/coreutils/manual/html_node/Date-input-formats.html

“2017030215”在大多数系统中不是有效的日期/时间字符串,date -d也不例外。如果您想了解date -d如何解释字符串,只需运行它而不使用+选项即可查看完整输出。你可能会感到惊讶。