我可以看到UNIX轻松处理标准日期格式' yyyy-mm-dd'。日期功能可以轻松提取日期格式标准日期格式,如此
date -d '2016-12-9 00:00:00' '+%d'
output: 09
但我无法找到使用非标准日期格式获得相同结果的方法。我的日期格式为' mm-dd-yyyy
'。
答案 0 :(得分:1)
GNU date
切换,您最有可能使用的 -d
不允许自定义日期格式,与支持FreeBSD
的{{1}}版本不同用于转换自定义日期格式。
使用-f input_fmt
和GNU date
操作,您可以实现您想要做的事情。
使用sed
将sed
中的输入日期转换为mm-dd-yyyy
格式可以理解。
GNU date
现在customDate=$(echo "12-09-2016 00:00:00" | sed 's/\([0-9]\{2\}\)\-\([0-9]\{2\}\)\-\([0-9]\{4\}\) \(.*\)/\3-\1-\2 \4/')
将使用customDate
格式的日期,您可以将其传递给2016-12-09 00:00:00
标记以获取所需日期。即。
-d
或者作为一种奇特的“单行”,他们现在称之为“单行”,而不使用临时变量。
date -d "$customDate" '+%d'
09