“date -d”如何parsingdate?

刚才(“Sun Jun 9 17:19:24 MDT 2013”​​),我运行了这个命令:

> date -d "first Sunday next month" Tue Jul 9 00:00:00 MDT 2013 

这既不是星期天,也不是下个月的第一个星期二:

编辑:运行在Fedora 11核心上:

 > date --version date (GNU coreutils) 7.2 Copyright (C) 2009 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>. This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. 

GNU日期选项:

-d,–date =字符串显示时间由字符串描述,不是现在。 这是一个人类可读的格式,如“下个星期四”或“1个月前”。 日期字符串可以包含指示日历日期,一天中的时间,时区,星期几,相对时间,相对日期和数字的项目。 这也被称为相对GNU日期格式。[1] 下面是几个相对日期的例子:

 date --date="1 days ago" date --date="yesterday" date --date='10 month ago' date --date='2 hour ago' date --date='Second Friday' 

我直接从维基复制这个。 : http://en.wikipedia.org/wiki/Date_(Unix) : http://en.wikipedia.org/wiki/Date_(Unix)

这个日期是愚蠢的 – 给我7月16日下个第一个星期天下个月

 Kaizen ~ $ date -d "first Sunday next month" + date -d 'first Sunday next month' Tue Jul 16 00:00:00 IST 2013 

似乎字符串有关键字,然后结果给出…星期天+下个月…在今天的日期之后,即在下个月(7月)第十(6月)是7月16日。 如果我星期一在这里而不是星期天,我会在七月十七日作为答复。

  Kaizen ~ $ date -d "next month monday" + date -d 'next month monday' Wed Jul 10 00:00:00 IST 2013 

就像明智的,如果我使用“下个月星期一”,那么它会去下个月,从今天的日期,即第十天是结果。

这有帮助吗?

它也是超级不可移植的,在所有的服务器上都不能工作…不了解你,但为了编程的目的,我会远离它。

还有一个类似性质的超级用户问题: http://superuser.com/questions/572088/unix-date-command-not-working-for-few-servers : http://superuser.com/questions/572088/unix-date-command-not-working-for-few-servers你也可以检查出来