Shell date 命令详解
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Shell date 命令详解相关的知识,希望对你有一定的参考价值。
格式: date [选项] ... [+格式]
选项说明:
-d ,--date=字符串 显示指定字符串所描述的时间
格式说明:
例子1:
#!/bin/bash ##1. 获取当前系统时间 YYYY-MM-DD HH:MM:SS v_time_eq=`date "+%F %T"` v_time=`date "+%Y-%m-%d %H:%M:%S"` echo -e "系统当前时间v_time: ${v_time}, v_time_eq: ${v_time_eq} \\tv_time 等价于 v_time_eq, 但是v_time 的格式,可读性更强,建议使用。" ##2. 获取指定格式的日期 YYYY-MM-DD, YYYYMMDD, YYYY/MM/DD v_date=`date -d "$v_time" +%Y%m%d` v_date_dir=`date -d "$v_time" +%Y/%m/%d` v_date_hor=`date -d "$v_time" +%Y-%m-%d` echo "系统当前日期v_date: ${v_date}, v_date_dir: ${v_date_dir}, v_date_hor: ${v_date_hor}。感受下不同的格式。" ##3.获取前一天、后一天的日期 YYYYMMDD v_date_ago_1=`date -d "$v_date -1 day" +%Y%m%d` v_date_future_1=`date -d "$v_date 1 day" +%Y%m%d` echo "前一天v_date_ago_1: ${v_date_ago_1}, 后一天v_date_future_1: ${v_date_future_1}" ##4.获取前一个月、后一个月的日期 YYYYMMDD v_date_ago_1month=`date -d "$v_date -1 month" +%Y%m%d` #遇到2月闰月的时候,会有问题,比如20170329,前一个月会变成20170301 v_date_ago_1month_leap=`date -d "20170329 -1 month" +%Y%m%d` v_date_future_1month=`date -d "$v_date 1 month" +%Y%m%d` echo "前一个月日期v_date_ago_1month: ${v_date_ago_1month}, 后一个月日期v_date_future_1month: ${v_date_future_1month}" echo "闰2月的时候,会有问题,比如20170329 的前一个月返回的是: ${v_date_ago_1month_leap}, 并不是20170228" ##5.获取前一年、后一年的日期 YYYYMMDD v_date_ago_1year=`date -d "$v_date -1 year" +%Y%m%d` v_date_future_1year=`date -d "$v_date 1 year" +%Y%m%d` echo "前一年的日期v_date_ago_1year:${v_date_ago_1year}, 后一年的日期v_date_future_1year: ${v_date_future_1year}" ##6.获取系统当前月份 月初日期 YYYYMMDD v_month=`date -d "$v_date" +%Y%m`01 v_month_ago_1=`date -d "$v_month -1 month" +%Y%m`01 v_month_future_1=`date -d "$v_month 1 month" +%Y%m`01 echo "系统当前月份月初日期v_month:${v_month},上个月月初日期v_month_ago_1:${v_month_ago_1}, 下个月月初日期v_month_future_1:${v_month_future_1}"
结果截图:
以上是关于Shell date 命令详解的主要内容,如果未能解决你的问题,请参考以下文章