Linux系统shell时间

Linux系统shell时间
在shell中,字符串转换为时间戳可以这样做:
date -d "2010-10-18 00:00:00" +%s
输出形如:
1287331200
其中,-d参数表示显示指定的字符串所表示的时间,+%s表示输出时间戳。

而时间戳转换为字符串可以这样做:

date -d @1287331200
输出形如:
Mon Oct 18 00:00:00 CST 2010


如果要转换成“2010-10-18 00:00:00”这种形式的时间戳,则这样做:
date -d "1970-01-01 UTC 1287331200 seconds" "+%F %T"
输出形如:
2010-10-18 00:00:10
 
再多废话一句,如果只要输出日期,不要时间,则去掉 %T 就可以了:
date -d "1970-01-01 UTC 1287331200 seconds" +%F
输出形如:
2010-10-18


read -p "Input your birthday(YYYYmmdd):" date1
m=`date --date="$date1" +%m`    #得到生日的月
d=`date --date="$date1" +%d`    #得到生日的日
date_now=`date +%s`      #得到当前时间的秒值
y=`date +%Y`            #得到当前时间的年
birth=`date --date="$y$m$d" +%s`      #得到今年的生日日期的秒值
internal=$(($birth-$date_now))       #计算今日到生日日期的间隔时间
if [ "$internal" -lt "0" ]; then           #判断今天的生日是否已过
birth=`date --date="$(($y+1))$m$d" +%s`      #得到明天的生日日期秒值
internal=$(($birth-$date_now))        #计算今天到下一个生日的间隔时间
fi
echo "There is :$((internal/60/60/24)) days."       #输出结果,秒换算为天


yy=`date --date="20130201" "+%Y"`
mm=`date --date="20130201" "+%m"`
if [ $mm -eq 01 ]; then
{
 mm=12;yy=`expr $yy - 1`
};else
{
mm=$mm - 1
};
fi
echo $yy$mm
date -d "yesterday" +"%Y-%m-%d"
date -d "20130101 UTC -864000 seconds" "+%Y%m"
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值