从非标准Unix日期

时间:2016-12-22 04:39:31

标签: date unix

我可以看到UNIX轻松处理标准日期格式' yyyy-mm-dd'。日期功能可以轻松提取日期格式标准日期格式,如此

date -d '2016-12-9 00:00:00' '+%d'
output: 09

但我无法找到使用非标准日期格式获得相同结果的方法。我的日期格式为' mm-dd-yyyy'。

1 个答案:

答案 0 :(得分:1)

由于GNU date切换,您最有可能使用的

-d不允许自定义日期格式,与支持FreeBSD的{​​{1}}版本不同用于转换自定义日期格式。

使用-f input_fmtGNU date操作,您可以实现您想要做的事情。

使用sedsed中的输入日期转换为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