linux里date的使用
1.获取现在的时间
1.1当前时间
>>date
Thu May 18 10:39:41 CST 2017
>>date +%s
1495075680
1.2当前日期
>>date +"%Y%m%d"
20170518
>>date +"%Y-%m-%d"
2017-05-18
其他格式的看附录,或者 date --help 查看%加字母代表什么意思。
1.3赋值变量
将事件给变量:
>>day=$(date +"%D"); echo $day
05/18/17
注意:
1.date后面必须有空格,date+"%Y%m%d"不可以
2.加号后面不可以有空格! date + "%Y%m%d"不可以
3.加号后面的这个 单引号双引号或者都不加都可以
2.时间的加减操作
2.1获取昨日时间(多日前同理)
>>date -d "-1 day" 或者 date -d "1 day ago"
Wed May 17 10:53:08 CST 2017
>>date -d "1 day ago" +%s
1494989818
2.2获取昨日日期
>>date -d "-1 day" +%Y%m%d
20170517
2.2获取明日时间
>>date -d "+1 day" 或者 date -d "1 day"
(1和day中间可以不加空格,不加空格的时候可以不加引号)
2.3获取上个月、去年的日期、时间(未来同理)
>>date -d "-1 month" +%Y%m%d
20170418
>>date -d "-1 year" +%Y%m%d
20160518
3.时间的格式转换(其实前面一直在用)
3.1普通转换
>>date -d "2017-05-19" +%Y%m%d
20170519
>>date -d "2017-05-19" +%s
1495123200
>>date -d @"1495123200" +%Y%m%d
20170519
>>date -d @1495123200
Fri May 19 00:00:00 CST 2017
3.2变量转换
>>day=20170518
>>date -d $day +%Y-%m-%d
2017-05-18
3.3时间戳转日期
>>time=1495077137
>>day=$(date -d @$time +%Y-%m-%d);echo $day
2017-05-18
以下为个人开发组的规则
4.azkaban上日期的使用(今日是20170518)
1.获取的是昨日的日期
job中: xxx.sh -t ${day}
(默认取昨日,如果输入时间则取输入的时间,注意此时不会减一天)
sh中(默认):
${day} 获取 2017-05-17
${day_str}获取 20170517
2.获取的是今日的日期
job中:xxx.sh -n ${day}
其余不变
sh中(默认):
${day} 获取 2017-05-18
${day_str}获取 20170518
3.以下四个参数都是取的现在时间
${cur_day}获取 2017-05-18
${cur_day_str}获取 20170518
(现在是11点37)
$shour:10
$ehour:10
$minute:37