刚才(“Sun Jun 9 17:19:24 MDT 2013”),我运行了这个命令:
> date -d "first Sunday next month" Tue Jul 9 00:00:00 MDT 2013
这既不是星期天,也不是下个月的第一个星期二:
date -d如何解释我的input?
是否有一个详细的选项(或甚至“date-d”),显示了我的input是如何解释? 它不是-v,“man date”没有显示详细的选项。
我意识到可能有一些库处理“date-d”。 我在哪里可以find该库及其文档,限制等?
我意识到没有任何程序可以处理所有可能的格式,但是看到“date -d”给出了错误的答案是令人不安的。 我会更喜欢“date:不能parsing'下个月的第一个星期天'”到错误的答案。
编辑:运行在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
你也可以检查出来