0%

使用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

()

Linux System Admin & MySQL DBA

  • 本文作者: Timo
  • 本文链接: 678.html
  • 版权声明: 本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!