shell中日期時間操作

2021-10-25 03:31:33 字數 3772 閱讀 4652

使用許可權 : 所有使用者

使用方式 : date [-u] [-d datestr] [-s datestr] [–utc] [–universal] [–date=datestr] [–set=datestr] [–help] [–version] [+format] 、[mmddhhmm[[cc]yy][.ss]]

說明 : date 能用來顯示或設定系統的日期和時間,在顯示方面,使用者能設定欲顯示的格式,格式設定為乙個加號後接數個標記,其中可用的標記列表如下 :

時間方面:

% : 印出

% %n : 下一行

%t : 跳格

%h : 小時(00…23)

%i : 小時(01…12)

%k : 小時(0…23)

%l : 小時(1…12)

%m : 分鐘(00…59)

%p : 顯示本地 am 或 pm

%r : 直接顯示時間 (12 小時制,格式為 hh:mm:ss [ap]m)

%s : 從 1970 年 1 月 1 日 00:00:00 utc 到目前為止的秒數 %s : 秒(00…61)

%t : 直接顯示時間 (24 小時制)

%x : 相當於 %h:%m:%s

%z : 顯示時區

日期方面:

%a : 星期幾 (sun…sat)

%a : 星期幾 (sunday…saturday)

%b : 月份 (jan…dec)

%b : 月份 (january…december)

%c : 直接顯示日期和時間

%d : 日 (01…31)

%d : 直接顯示日期 (mm/dd/yy)

%h : 同 %b

%j : 一年中的第幾天 (001…366)

%m : 月份 (01…12)

%u : 一年中的第幾周 (00…53) (以 sunday 為一周的第一天的情形)

%w : 一周中的第幾天 (0…6)

%w : 一年中的第幾周 (00…53) (以 monday 為一周的第一天的情形)

%x : 直接顯示日期 (mm/dd/yy)

%y : 年份的最後兩位數字 (00.99)

%y : 完整年份 (0000…9999)

若是不以加號作為開頭,則表示要設定時間,而時間格式為mmddhhmm[[cc]yy][.ss]

其中:mm 為月份

dd 為日

hh 為小時

mm 為分鐘

cc 為年份前兩位數字

yy 為年份後兩位數字

ss 為秒數

需求:轉換給定時間的格式

➜  ~ original=

"jul 1 21:29"

➜ ~ date

"+%g-%m-%d %h:%m:%s" -d "$original"

2020-07-01 21:29:00

直接轉換:

➜  ~ date +%b/%d/%g -d "2020-01-01"

jan/01/2020

需求:顯示目前的格林威治時間

➜  ~ date -u

fri oct 23 01:55:54 utc 2020

需求:日期之間間隔的天數

➜  ~ expr

'('$(

date +%s -d "2020-01-31"

) - $(

date +%s -d "2020-01-01"

) ')' / 86400

30

需求:日期加減指定間隔單位

增加36小時:

➜  ~ a=

`date +%y-%m-%d`

➜ ~ b=

`date +%y-%m-%d -d "$a +36 hours"

`➜ ~ echo

$a2020-10-23

➜ ~ echo

$b2020-10-24

# 10天前

➜ ~ date -d "$a -10 days"

tue oct 13 00:00:00 cst 2020

需求:以指定格式顯示檔案最後更改時間

➜  ~ date

"+%y-%m-%d %h:%m:%s" -r test.cc

2020-09-15 14:04:56

需求:給定的日期究竟是星期幾

並得到相對於當前日期的相對日期。

➜  ~ date -d "nov 22"

sun nov 22 00:00:00 cst 2020

需求:獲取月份,單數個位數月份補足0

~ date +%m

10

不希望出現無意義的 0 時(比如說 1999/03/07),則能在標記中插入 – 符號。

把月中無意義的 0 給去掉

~ date +%-m
把時分秒中無意義的 0 給去掉

➜  ~ date +%-h:%-m:%-s

10:2:23

需求:獲得當天的日期

➜  ~ date +%y-%m-%d

2020-10-23

需求:顯示時間後跳行,再顯示日期

➜  ~ date +%t%n%d

10:04:22

10/23/20

需求:顯示月份和日期

➜  ~ date +%b-%d

october-23

需求:ntp時間同步:

linux系統下預設安裝了ntp服務,手動進行ntp同步如下

➜  ~ ntpdate ntp1.nl.net

23 oct 10:05:38 ntpdate[30593]: the ntp socket is in use, exiting

需求:使用今天之前或者往後的日期,這時可以使用date的 -d引數

# 獲取明天的日期

➜ ~ date -d next-day +%y%m%d

20201024

# 獲取昨天的日期

➜ ~ date -d last-day +%y%m%d

20201022

# 獲取上個月的年和月

➜ ~ date -d last-month +%y%m

202009

# 獲取下個月的年和月

➜ ~ date -d next-month +%y%m

202011

# 獲取明年的年份

➜ ~ date -d next-year +%y

2021

shell中日期操作

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 0...

shell操作日期時間

linux 系統為我們提供了乙個命令 date,專門用來顯示或者設定系統日期時間的。語法格式為 date option format 或者 date u utc universal mmddhhmm cc yy ss 常用的可選項有 help 顯示輔助資訊 version 顯示 date 命令版本資...

Python中日期和時間的操作

python中,對日期和時間的操作,主要使用這3個內建模組 datetime time 和 calendar 獲取當前時間對應的數字 開發程式時,經常需要獲取兩個 位置在執行時的時間差,比如,我們想知道某個函式執行大概耗費了多少時間,就可以使用time.time 來做。import time bef...