Chinaunix首页 | 论坛 | 博客
  • 博客访问: 10147873
  • 博文数量: 1669
  • 博客积分: 16831
  • 博客等级: 上将
  • 技术积分: 12594
  • 用 户 组: 普通用户
  • 注册时间: 2011-02-25 07:23
个人简介

柔中带刚,刚中带柔,淫荡中富含柔和,刚猛中荡漾风骚,无坚不摧,无孔不入!

文章分类

全部博文(1669)

文章存档

2023年(4)

2022年(1)

2021年(10)

2020年(24)

2019年(4)

2018年(19)

2017年(66)

2016年(60)

2015年(49)

2014年(201)

2013年(221)

2012年(638)

2011年(372)

分类: 系统运维

2012-12-05 16:07:22

SHELL下date命令的用法  不指定
詹兴斌 , 2012/10/13 22:46 , 默认分类 , 评论(0) , 阅读(714) , Via 本站原创 | |
date命令如何获得上星期的日期?

#date -d “-1 week” “+%Y%m%d %A”

举一反三:date命令获得前天,昨天,明天,后天,上个月,下个月的日期

date -d “-2 day” “+%Y%m%d %A” 或 date –date=”2 days ago” “+%Y%m%d %A”

date -d “-1 day” “+%Y%m%d %A” 或 date –date=”1 day ago” “+%Y%m%d %A”

date -d “1 day” “+%Y%m%d %A”

date -d “2 day” “+%Y%m%d %A”

date -d “-1 month” “+%Y%m%d %A”

date -d “1 month” “+%Y%m%d %A”

还有其他用法:

date +%s 可以得到UNIX的时间戳;

#vi utc.sh
————————————————————————————–
#!/bin/sh
date -d ’1970-01-01 UTC ‘$1′ seconds’ +”%Y-%m-%d %T”
————————————————————————————–
#utc 1176736543
2007-04-16 23:15:43

可以把UNIX时间戳转换成当前系统时间

另外要注意下日期字串中的相对项问题:
比如今天是08年3月30日,date -d “last month” +%Y%m%d得到的结果会显示为20080301,因为一个月前,即2月30日是无效的。

Relative items 向前或向后调整指定日期(如不指出日期为当前日期)。相对项的效果是累积的。这里有一些例子: examples:

1 year
1 year ago
3 years
2 days

时间的单位可以用字串 `year’ 或 `month’ 替换,表示移动整年或整月。有一些模糊的单位,像 years 和 months 时间段并不一致。精确的单位有 `fortnight’ 表示 14 天,`week’ 是 7 天,`day’ 是 24 小时,`hour’ 是 60 分钟, `minute’ 或 `min’ 是 60 秒,`second’ 或 `sec’ 是一秒。单位后面可以有后缀 `s’,但被忽略。

时间单位前面可以跟乘数,它是一个符号数。没有符号的数字认为是正数。没有给出乘数隐含为 1。相对时间后面的 `ago’ 字串等于乘数值为-1。

字串 `tomorrow’ 值为将来的一天(等于 `day’),字串 `yesterday’ 值为过去的一天(等于 `day ago’)。

字串 `now’ 或 `today’ 相对项等同于用零值替代,如果没有被前面项目修改,这些字串代表当前时间。它们也可以用来强调其他项,如 `12:00 today’。字串 `this’ 也代表零值,但常用于 `this thursday’ 这样的日期字串里面。

当相对项让日期跨越时钟调整边界时,典型的例子是夏时制,日期和时间的结果也要相应地调节。

模糊的单位会另相对项出现问题。例如,`2003-07-31 -1 month’ 可以等于 2003-07-01,这是因为 2003-06-31 是一个无效的日期。为了更可靠地确定上一个月,你可以询问当前月十五号的上一个月,例如:

$ date -R
Thu, 31 Jul 2003 13:02:39 -0700
$ date –date=’-1 month’ +’Last month was %B?’
Last month was July?
$ date –date=”$(date +%Y-%m-15) -1 month” +’Last month was %B!’
Last month was June!

还有,要小心处理夏令时闰年日期和时间的改变。一些情形下它们增加或减少 24 小时,所以开始日历计算前,最好先将 TZ 环境变量设成 `UTC0′。
阅读(751) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~