shell中日期操作

2022-03-04 19:43:12 字數 2232 閱讀 1288

1. date -d操作

date  +"

%y%m%d

" -d "

+n days

"#今天的後n天日期

date +"

%y%m%d

" -d "

-n days

" #今天的前n天日期

2. 常用日期格式輸出

date +"

%f" #輸出: 2012-06-08

date +"

%d" #輸出: 06/08/12

date +"

%y%m%d %h:%m:%s

" #輸出: 20120608

04:52:28

date +"

%y%m%d

" #輸出: 20120608

date +"

%y%m%d %h:%m:%s

" -d "

+1 hours

" #輸出: 20120608

05:52:43

date +"

%y%m%d %h:%m:%s

" -d "

+1 days

" #輸出: 20120609

04:52:52

date +"

%y%m%d %h:%m:%s

" -d "

+1 months

" #輸出: 20120708

04:52:56

date +"

%y%m%d %h:%m:%s

" -d "

+1 years

" #輸出: 20130608

04:53:07

date +"

%t" #輸出: 05:03:21

date +"

%f %t

" #輸出: 2012-06-08

05:03:34

date +"

%d %t

" #輸出: 06/08/12

05:03:39

3. 日期格式轉換

# 字串轉時間戳

date -d "

2010-10-18 00:00:00

" +%s #輸出:1287331200

# 時間戳轉字串

date -d @1287331200

"+%y-%m-%d

" #輸出:2010-10-18

# 獲取指定日期的後n天,如果是前n天,則第二部中間是 -

步驟1:得到時間戳         seconds=`date -d "

2010-10-18 00:00:00

" +%s`

步驟2:加上n天的秒數86400*n   seconds_new=`expr $seconds + 86400*n`

步驟3:獲得指定日前加上一天的日前  date_new=`date -d @$seconds_new "

+%y-%m-%d

"`

4. 獲取上月末和最近一年的日期

dt_curr=20190322

#當月初

dt=`date -d"

$ -0 days""

+%y%m01

"`

#去年今月初

dt_lastyear=`date -d"

$ -1 years""

+%y%m01"`

#上月末

lastday=`date -d "

$ -1 day""

+%y%m%d"`

#去年今月末

lastday_lastyear=`date -d "

$ -1 day""

+%y%m%d

"`

dt: 20190301

dt_lastyear: 20180301

lastday: 20190228

lastday_lastyear: 20180228

shell中日期時間操作

使用許可權 所有使用者 使用方式 date u d datestr s datestr utc universal date datestr set datestr help version format mmddhhmm cc yy ss 說明 date 能用來顯示或設定系統的日期和時間,在顯示方...

sql中日期操作

1.看到乙個帖子,裡面日期操作函式挺多,方法技巧也挺好,學習了。declare s date select s 2012 01 01 定義開始日期 select cast datepart yy,dateadd dd,number,s as varchar 4 年 cast datepart mm,...

linux的shell中,日期格式校驗

在shell裡對日期格式,有效性的檢查,在網上搜了一下,對有效性檢查,很多都是借助cal命令的輸出,來檢查日期是否有效,比如 這樣 cal 2 2008 grep q 29 echo ok echo error 道理就是把年月日拆分開,在cal的某年某月的輸出中去找日期,但仔細想一下,這種方法有問題...