Shell date 命令詳解

2021-08-25 11:47:11 字數 2555 閱讀 5273

格式: 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_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_dir: $, 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_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_future_1month: $"

echo "閏2月的時候,會有問題,比如20170329 的前乙個月返回的是: $, 並不是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_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_ago_1:$, 下個月月初日期v_month_future_1:$"

結果截圖:

例子2: 對於單獨使用小時、分鐘時,會有08,09這樣的出現,需要轉換成10進製,才能進行計算。

#!/bin/bash

#當小時、分鐘是08、09時,計算出現錯誤,value too great for base (error token is "08") 數值太大不可為算數進製的基

#原因是shell將08、09當成了8進製數,而8進製數中合法的最大的數字是7,須讓shell強制將08、09當成10進製來解釋,在前面加上10#

v_hour=`date -d "20170701 08:05:00" +%h`

v_min=`date -d "20170701 08:05:00" +%m`

echo "v_hour is $"

echo "v_min is $"

## 轉換成10進製,才能計算

let v_hour=10#$

let v_min=10#$

## 計算總的分鐘數

let v_total_min=$*60+$

echo "v_total_min is $"

結果截圖:

SHELL DATE 命令詳解

shell date命令 名稱 date 使用許可權 所有使用者 使用方式 date u d datestr s datestr utc universal date datestr set datestr help version format mmddhhmm cc yy ss 說明 date ...

SHELL DATE 命令詳解

shell date命令 名稱 date 使用許可權 所有使用者 使用方式 date u d datestr s datestr utc universal date datestr set datestr help version format mmddhhmm cc yy ss 說明 date ...

shell date命令詳解

使用方式 date u d datestr s datestr utc universal date datestr set datestr help version format mmddhhmm cc yy ss 說明 date 可以用來顯示或設定系統的日期與時間,在顯示方面,使用者可以設定欲顯...