如何在Shell中使用时间和日期函数

  介绍

这篇文章将为大家详细讲解有关如何在Shell中使用时间和日期函数,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。

壳下获取系统时间的方法直接调用系统变量

获取今天时期:“日期+ % Y % m % d”或“日期+ % F”或美元(日期+ % Y % m % d)
获取昨天时期:Y '昨天日期- d + % % m % d '
获取前天日期:“日期- d 2天+ % Y % m % d '
依次类推比如获取10天前的日期:Y '日期- d -10天+ % % m % d '
或n天前的“日期- d“n天ago"+ % y % m % d '
明天:“明天日期- d + % y % m % d '
注意以上中间有空格

<强>时间域

% H小时(00 . .23)
%我小时(01 . .12)
% k小时(0 . .23)
% l小时(1 . .12)
% M分(00 . .59)
% p显示出点或点
% r时间(hh: mm: ss点或点),12个小时
% s从1970年1月1日就是到目前经历的秒数
% s秒(00 . .59)
% T时间(24小时制)(hh: mm: ss)
% X显示时间的格式(% H: % M: % S)
% Z时区日期域
%一个星期几的简称(太阳. .坐在)
%一个星期几的全称(周日. .星期六)
% b月的简称(Jan . .12月)
% B月的全称(1 . .12月)
% c日期和时间(Mon 1999年11月8日14:12:46 CST)
% d一个月的第几天(01 . .31)
% D日期(mm/dd/yy)
% h和% b选项相同
% j一年的第几天(001 . .366)
%月(01 . .12)
% w一个星期的第几天(0代表星期天)
% w一年的第几个星期(00 . .53岁的星期一为第一天)
% x显示日期的格式(mm/dd/yy)
% y年的最后两个数字(1999年则是99)
% y年(例如:1970、1996等)

注意:只有超级用户才有权限使用日期命令设置时间,一般用户只能使用日期命令显示时间

<强>时间函数

# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #,   #壳日期计算函数,#,   # 1:判断是否闰年check_leap (), #,   # 2:获取月份最大日期get_mon_days (), #,   # 3:检查日期格式check_date (), #,   # 4:返回昨天日期get_before_date (), #,   # 5:返回明天日期get_next_date (), #,   # 6:返回当月月末日期YYYYMMDD  get_cur_date ()   # 7:返回当月月份YYYYMM  get_cur_month ()   # 8:返回上月月末日期YYYYMMDD  get_last_date ()   # 9:返回上月月份YYYYMM  get_last_month ()   # # # # # # # # # # # # # #一些其他函数# # # # # # # # # # # # # # # # # # # # # # # #,   #判断是否闰年,   #输入:year    #输出:,“true",“fase",   check_leap ()   {   Y=' expr  substr  1美元,1,4 '   r1=' expr  Y 美元;%,4”   r2=' expr  Y 美元;%,100年   r3=' expr  Y 美元;%,400年   if  [, r1 美元;-eq  0, -a  r2 美元;-ne  0, -o  r3 美元;-eq  0,)   然后   FRUN=皌rue"   其他的   FRUN=癴alse"   fi   echo  FRUN美元   }   # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -安康;   #,获取月份最大日期,   1 #方法,   get_mon_days (),   {,   Y=' expr  substr  1美元,1,4”,   M=' expr  substr  1美元,5,2》,   case “M"美元,拷贝;   03号| | 5 | 07 08年| | | 10 12),天=31;,,   04 | 06 | 09年| 11),天=30,,,   02),   _tmpStr=癱heck_leap “Y"美元”,#判断是否闰年,   if  [,“_tmpStr"美元,=,“true",),,, then    #闰年,   天=29,   else    天=28,   fi    ;,,   *),   天=0,   ;,,   esac    echo  days 美元;   },   # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -安康;   #,获取月份最大日期,   2 #方法,   get_mon_days2 (),   {,   Y=' expr  substr  1美元,1,4”,   M=' expr  substr  1美元,5,2》,   #取当月底最后一天,   aa=' cal  M 美元;$ Y ', #日历,   天=' | echo  aa 美元;awk  & # 39; {print  $ NF} & # 39;”,   echo  days 美元;   },   #检查日期格式(例:20090227),   #返回状态($ ?),0,合法,1,非法,   check_date (),   {,   #检查是否传入一个参数   ($ #大敌;-ne  1,),,, echo  1,, exit  1,   #检查字符串长度,   _lenStr=' expr  length “1美元“”,   (,“_lenStr"美元,-ne  8,),,, echo  1,, exit  1,   #检查是否输入的是非0开头的数字,   _tmpStr=' echo “1美元“,|,grep “^ ^[0][0 - 9] *“美元”,   [,-z “_tmpStr"美元;,),,,echo  1,, exit  1,   Y=' expr  substr  1美元,1,4”,   M=' expr  substr  1美元,5,2》,   D=' expr  substr  1美元,7,2》,   #检查月份,   (,“M"美元,-lt  1, -o “M"美元;,-gt  12,),,, echo  1,, exit  1,   #取当月天数,   天=' get_mon_days “Y M"美元”,   #检查日,   (,“D"美元,-lt  1, -o “D"美元;,-gt “days"美元;,),,,echo  1,, exit  1,   echo  0,   },   # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

如何在Shell中使用时间和日期函数