Linux脚本学习之时间操作
1、缩写
时间月份:
一月 January Jan
二月 February Feb
三月 March Mar
四月 April Apr
五月 May May
六月 June June
七月 July July
八月 Aguest Aug
九月 September Sept
十月 October Oct
十一月 November Nov
十二月 December Dec
时间周:
星期一 Monday Mon
星期二 Tuesday Tues
星期三 Wednesday Wed
星期四 Thursday Thur
星期五 Friday Fri
星期六 Saturday Sat
星期天 Sunday Sun
2、获取当前时间
- date
3、格式化获取当前时间
- date "+%Y-%m-%d"
ps:如果+%Y-%m-%d不一定需要用引号引起来,但是如果不连在一起,例如"+%Y %m %d"就一定需要用引号引起来,所以方便起见就直接括起来就好
日期方面 :
%a : 星期几 (Sun..Sat)
%A : 星期几 (Sunday..Saturday)
%b : 月份 (Jan..Dec)
%B : 月份 (January..December)
%c : 直接显示日期和时间
%d : 日 (01..31)
%D : 直接显示日期 (mm/dd/yy)
%h : 同 %b
%j : 一年中的第几天 (001..366)
%m : 月份 (01..12)
%U : 一年中的第几周 (00..53) (以 Sunday 为一周的第一天的情形)
%w : 一周中的第几天 (0..6)
%W : 一年中的第几周 (00..53) (以 Monday 为一周的第一天的情形)
%x : 直接显示日期 (mm/dd/yy)
%y : 年份的最后两位数字 (00.99)
%Y : 完整年份 (0000..9999)
%H : 小时
%M : 分
%S : 秒
3、格式化获取之前的时间
①1天前
- date -d "1 day ago" "+%Y-%m-%d %H:%M:%S"
②50天后
- date -d "50 days" "+%Y-%m-%d %H:%M:%S"
③50天前
- date -d "-50 days" "+%Y-%m-%d %H:%M:%S"
ps:可以将 days换成一下时间单位,days、weeks、months、years、hours、minutes、seconds
4、获取格式化时间并赋值
- mytime=`date -d "+1 days -1 hours" "+%Y-%m-%d %H:%M:%S"`
ps:``是执行命令的符号,不是单引号。``在键盘左上角Esc下面,与~同一键位
5、计算时间差,单位秒
- date1="2008-07-01 21:28:55"
- date2="2008-07-01 22:28:55"
- time1=`date -d "$date1" +%s`
- time2=`date -d "$date2" +%s`
- timecha=`expr $time1 - $time2` #计算2个时间的差
- echo "$timecha"
6、将秒转成时间字符串,但只能算出来从1970-01-01 08:00:00开始的时间,其中@后的值为开始时间过去的秒数
- date -d "@123456" "+%Y-%m-%d %H:%M:%S"