shell中的日期时间处理

在Shell中的一些常见的处理时间的方法,这里记录一下。

$ date                        #获得当前日期Sat Sep  6 23:31:48 CST 2014$ date +%Y%m%d                #获得当前日期20140906$ date +%Y.%m.%d-%H:%M:%S     #获得当前日期2014.09.06-23:32:56$ date -d "-1 week" +%Y%m%d   #获取上周今日的日期20140830$ date -d "+3 day" +%Y%m%d    #获得3天后的日期20140909$ date -d "+1 month" +%Y%m%d  #获得1个月后的日期20141006$ date -d "+2 month 20131231" +%Y%m%d  #获得2013年12月31日以后2个月的日期20140303

data命令参数详解

%% 输出%符号%a 当前域的星期缩写 (Sun..Sat)%A 当前域的星期全写 (Sunday..Saturday)%b 当前域的月份缩写(Jan..Dec)%B 当前域的月份全称 (January..December)%c 当前域的默认时间格式 (Sat Nov 04 12:02:33 EST 1989)%C n百年 [00-99]%d 两位的天 (01..31)%D 短时间格式 (mm/dd/yy)%e 短格式天 ( 1..31)%F 文件时间格式 same as %Y-%m-%d%h same as %b%H 24小时制的小时 (00..23)%I 12小时制的小时 (01..12)%j 一年中的第几天 (001..366)%k 短格式24小时制的小时 ( 0..23)%l 短格式12小时制的小时 ( 1..12)%m 双位月份 (01..12)%M 双位分钟 (00..59)%n 换行%N 十亿分之一秒(000000000..999999999)%p 大写的当前域的上下午指示 (blank in many locales)%P 小写的当前域的上下午指示 (blank in many locales)%r 12小时制的时间表示(时:分:秒,双位) time, 12-hour (hh:mm:ss [AP]M)%R 24小时制的时间表示 (时:分,双位)time, 24-hour (hh:mm)%s 自基础时间 1970-01-01 00:00:00 到当前时刻的秒数(a GNU extension)%S 双位秒 second (00..60);%t 横向制表位(tab)%T 24小时制时间表示(hh:mm:ss)%u 数字表示的星期(从星期一开始 1-7)%U 一年中的第几周星期天为开始 (00..53)%V 一年中的第几周星期一为开始 (01..53)%w 一周中的第几天 星期天为开始 (0..6)%W 一年中的第几周星期一为开始 (00..53)%x 本地日期格式 (mm/dd/yy)%X 本地时间格式 (%H:%M:%S)%y 两位的年(00..99)%Y 年 (1970…)%Z : 显示时区

=====================================批量输出一段日期内的每一天

#!/bin/sh#riqizizengdatebeg=$1dateend=$2#read datebeg#read dateendbeg_s=`date -d "$datebeg" +%s`end_s=`date -d "$dateend" +%s`while [ "$beg_s" -le "$end_s" ]do    date -d @$beg_s +"%Y%m%d"    beg_s=$((beg_s+86400))done

以下是运行结果

./every.sh 20120130 20120401201201302012013120120201201202022012020320120204………………201203272012032820120329201203302012033120120401
shell中的日期时间处理

相关文章:

你感兴趣的文章:

标签云: