shell date 获取昨天日期及几种特殊格式
来源:互联网 发布:常熟淘宝培训班 编辑:程序博客网 时间:2024/05/22 02:20
- 第一种 使用date -d 选项
date +"%Y%m%d" -d "+n days" 今天的后n天日期
date +"%Y%m%d" -d "-n days" 今天的前n天日期
- 自己写函数
#!/bin/ksh#获取昨天的日期lastday(){ Today=`date +%Y%m%d` YEAR=`echo $Today|cut -c 1-4` MONTH=`echo $Today|cut -c 5-6` DAY=`echo $Today|cut -c 7-8` if [ $DAY -eq 1 ] then if [ $MONTH -eq 1 ] then YEAR=`expr $YEAR - 1` MONTH=12 else MONTH=`expr $MONTH - 1` fi#如下两种方法皆可 #DAY=`echo \`cal $MONTH $YEAR\`|tail -n1|awk '{print $NF}'`# DAY=$(cal $MONTH $YEAR | tail -n2|sed -n 1,1p | awk '{print $NF}') else DAY=`expr $DAY - 1` fi LAST=$(echo "$YEAR $MONTH $DAY"|awk '{if (length($2)==1) $2=0$2;if (length($3)==1) $3=0$3;printf "%s%s%s",$1,$2,$3}')}
GetLastDate(){TODAY=`date "+%Y %m %d"`LASTDATE=`echo $TODAY|awk \'{ \Year=$1; Month=$2; Day=$3; \M[1]=31; M[2]=28; M[3]=31; M[4]=30; M[5]=31; M[6]=30; \M[7]=31; M[8]=31; M[9]=30; M[10]=31; M[11]=30; M[12]=31; \if (Year%4==0 && (Year%100!=0 || Year%400==0)) M[2]=29; \else M[2]=28; \if (Day-1==0) \{ \if (Month-1==0) { Year-=1; Month=12; } \else Month-=1; \Day=M[Month]; \} \else Day-=1; \printf("%04d%02d%02d", Year, Month, Day); \}'`}echo "***************"lastdayecho ${LAST}echo "***************"GetLastDateecho ${LASTDATE}-----------------------------------------------------------常用日期格式[root@localhost tmp]# date +"%F"2012-06-08[root@localhost tmp]# date +"%D"06/08/12[root@localhost tmp]# date +"%Y%m%d %H:%M:%S"20120608 04:52:28[root@localhost tmp]# date +"%Y%m%d"20120608[root@localhost tmp]# date +"%Y%m%d %H:%M:%S" -d "+1 hours"20120608 05:52:43[root@localhost tmp]# date +"%Y%m%d %H:%M:%S" -d "+1 days"20120609 04:52:52[root@localhost tmp]# date +"%Y%m%d %H:%M:%S" -d "+1 months"20120708 04:52:56[root@localhost tmp]# date +"%Y%m%d %H:%M:%S" -d "+1 years"20130608 04:53:07[root@localhost tmp]# date +"%T"05:03:21[root@localhost tmp]# date +"%F %T"2012-06-08 05:03:34[root@localhost tmp]# date +"%D %T"06/08/12 05:03:39
[root@localhost riqi]# date +"%Y-%m-%d %H:%M:%S"2012-07-18 05:17:01[root@localhost riqi]# date +"%Y-%m-%d %H:%M:%S" -d "+10hour"2012-07-18 15:17:16[root@localhost riqi]# date +"%Y-%m-%d %H:%M:%S" -d "+24hour"2012-07-19 05:17:37[root@localhost riqi]# date +"%Y-%m-%d %H:%M:%S" -d "-24hour"2012-07-17 05:17:45[root@localhost riqi]# date +"%Y-%m-%d %H:%M:%S" -d "-20minute"2012-07-18 04:58:00[root@localhost riqi]# date +"%Y-%m-%d %H:%M:%S" -d "+20minute"2012-07-18 05:38:05[root@localhost riqi]# date +"%Y-%m-%d %H:%M:%S" -d "+2day"2012-07-20 05:18:15[root@localhost riqi]# date +"%Y-%m-%d %H:%M:%S" -d "-2day"2012-07-16 05:18:19[root@localhost riqi]# date +"%Y-%m-%d %H:%M:%S" -d "-2month"2012-05-18 05:18:24[root@localhost riqi]# date +"%Y-%m-%d %H:%M:%S" -d "+2month"2012-09-18 05:18:28[root@localhost riqi]# date +"%Y-%m-%d %H:%M:%S" -d "+2year"2014-07-18 05:18:32[root@localhost riqi]# date +"%Y-%m-%d %H:%M:%S" -d "-2year"2010-07-18 05:18:36
---------------------------------------------------
用shell将时间字符串与时间戳互转
date +%s 可以得到UNIX的时间戳;
用shell将时间字符串与时间戳互转:
date -d "2010-10-18 00:00:00" +%s 输出形如:1287331200
而时间戳转换为字符串可以这样做:
date -d @1287331200 "+%Y-%m-%d" 输出形如:2010-10-18
如果需要得到指定日期的前后几天,可以:
1、seconds=`date -d "2010-10-18 00:00:00" +%s` #得到时间戳
2、seconds_new=`expr $seconds + 86400` #加上一天的秒数86400
3、date_new=`date -d @$seconds_new "+%Y-%m-%d"` #获得指定日前加上一天的日前
- shell date 获取昨天日期及几种特殊格式
- shell date 获取昨天日期及几种特殊格式
- shell 获取昨天日期
- Mac Shell获取昨天日期
- 汇总shell获取昨天日期
- shell date 获取日期
- aix shell 获取昨天的日期
- Linux下date命令格式化时间格式shell脚本获取指定格式日期
- Date日期验证及获取
- java 获取date日期的String格式
- Linux date日期格式及加减运算
- Linux date日期格式及加减运算
- Linux date日期格式及加减运算
- Linux date日期格式及加减运算
- Linux date日期格式及加减运算
- linux中用shell获取昨天、明天或多天前的日期
- linux中用shell获取昨天、明天或多天前的日期
- linux中用shell获取昨天、明天或多天前的日期
- 嵌入式Linux下的LCD驱动程序设计与实现
- lpc3250linux固化流程
- stagefright与opencore对比
- linux 多线程编程
- Marshal.SizeOf和sizeof的区别
- shell date 获取昨天日期及几种特殊格式
- 清除自定义通知里的过去的项目
- Linux SSH远程文件/目录传输命令scp
- 商业智能相关概念
- 用Smack编写jabber客户端
- 绝好的MongoDB学习资料之十二 MapReduce
- 区别 scanf gets fgets
- flex里的tooltip的字体大小
- 求教