Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Unix gnu日期-为什么上个月不是';T_Unix_Gnu - Fatal编程技术网

Unix gnu日期-为什么上个月不是';T

Unix gnu日期-为什么上个月不是';T,unix,gnu,Unix,Gnu,我正在尝试使用date命令获取上个月的数据。当我在5月31日运行它时,它返回5月1日,我期待着4月份会发生什么。有没有更好的办法 > date --version date (GNU sh-utils) 2.0 Written by David MacKenzie. Copyright (C) 1999 Free Software Foundation, Inc. This is free software; see the source for copying conditions.

我正在尝试使用date命令获取上个月的数据。当我在5月31日运行它时,它返回5月1日,我期待着4月份会发生什么。有没有更好的办法

> date --version
 date (GNU sh-utils) 2.0
Written by David MacKenzie.

Copyright (C) 1999 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
> date
Fri May 31 13:29:08 EDT 2013
> date --date='last month'
Wed May  1 13:29:15 EDT 2013
根据@fvu的评论,我尝试了以下方法:

> date --date='first day last month'
Thu May  2 14:00:43 EDT 2013
> date --date='first day next month'
Tue Jul  2 14:00:52 EDT 2013
这不太管用。但这确实:

>date --date='last day last month'
Tue Apr 30 14:06:28 EDT 2013
我想我需要一个月的定义,我相信“上个月”是指30天前,而不是上个月

date --date="$(date +%Y-%m-15) -1 month" 

给出的信息示例是否用于检测前一个月,因为-1个月与-30天相同

可能与我的知识有关,两者都使用相同的解析代码…哇。。。对于
日期(GNU coreutils)5.97仍然正确。(您没有设置TZ变量,是吗?…至少它是一致的,
date--date'Oct 31 2013 last month'返回2013年10月1日
)祝您好运!“上个月”是指30天前,我相信不是上个月。date--date=“$(日期+%Y-%m-15)-1个月”是用于检测上个月的信息示例,因为-1个月与-30天相同