使用gnu date来获取各种时间

由于运营需求,我经常在工作中需要写各种脚本来获取不同的时间,而我又不怎么喜欢使用mysql自带的时间函数,总觉得gnu date更强大一点,万全可以拼凑出我需要的时间格式。

比如要获取昨天的日期

date -d -1days +%F

这样一个简单的命令就可以获取昨天的日期,当然也可以随便之前之后多少天,而且我也不需要考虑闰月啊等等。

有时候运营想知道上周总的数据。那我们就寻要获取上周一到上周日的时间,那其实很简单

date -d 'last mon' +%F

也可以写全为,因为有时候你要写上个月就要写全为last month

date -d'last monday' +%F

那上周日很容易就是

date -d 'last sunday' +%F

那要取上个月呢?

date -d 'last month' +%Y-%m

取上一年

date -d 'last year' +%Y

大家也许都看到了我这里主要用的就是-d参数
在man date里关于-d的解释是这样的

-d, --date=STRING
显示由 STRING 指定的时间, 而不是当前时间

那这里的STRING到底有哪些选择呢?

查了下官方文档http://www.gnu.org/software/coreutils/manual/html_node/Examples-of-date.html

发现主要有以下几种选择,一个是day, week, month, year这些选择。 另外一个是周一到周日的选择。
同时它还支持这几种条件的合集,比如,我要知道三周后多1天是几号:

date -d '3 week 1 day'

Best regards
Timo Seven
blog: http://www.timoseven.com
#####请翻墙浏览,或者指定hosts到74.200.243.252#######
twitter: http://twitter.com/zauc

Linux System Admin & MySQL DBA

关于 Timo
XNIX SA & MYSQL DBA

发表评论

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / 更改 )

Twitter picture

You are commenting using your Twitter account. Log Out / 更改 )

Facebook photo

You are commenting using your Facebook account. Log Out / 更改 )

Google+ photo

You are commenting using your Google+ account. Log Out / 更改 )

Connecting to %s

%d 博主赞过: