1. 程式人生 > >awk時間函式

awk時間函式

awk提供了兩個函式來獲取時間和格式化時間戳:systime和strftime。
systime函式 systime函式將返回自1970 年1月l日以來經過的時間(按秒計算)。

格式

systime()

範例

$ awk 'BEGIN{now=systime();print now}'
939515282

說明:systime函式的返回值被賦給一個使用者自定義的變數:now。這個值等於從1970年1月1日以來所累計的總時間(單位為秒)。
strftime函式 strftime函式使用C庫中的strftime函式對時間進行格式化。格式形式可以為%T %D等(參見下表)。時間戳的格式和systime函式返回值所採用的格式一樣,如果不使用時間戳,則以當前的時間為預設時間。

日期格式 定義
%a 簡寫的星期名(如Sun)
%A 完整的星期名(如Sunday)
%b 簡寫的月名(如Oct)
%B 完整的月名(如October)
%c 本地的日期和時間(如Sun Oct 17 15:26:46 2014)
%d 用十進位制表示的月份中的某一夭( 如17)
%D 採用10/17/14 形式表示的日期
%e 月份中的某一夭,如果只有一位數字,用空格填充份
%H 用十進位制表示的24 小時制的小時數以( 如15)
%I 用十進位制表示的12 小時制的小時數( 如03)
%j 用十進位制表示的從當年1 月1 日以來的天數。(如290)
%m 用十進位制表示的月數( 如10)
%M 用十進位制表示的分鐘數( 如26)
%p 採用12 小時製表示的AM/PM 表示法(如PM)
%S 用十進位制表示的秒數(如26)
%U 用十進位制表示的一年中的週數(星期日作為一週的開始)(如42)
%w 用十進位制表示的星期數(如星期日為0)
%W 用十進位制表示的一年中的週數(星期一作為一週的開始)(如41)
%x 本地日期(如 10/17/14)
%X 本地時間(如15:26:26)
%y 用十進位制表示的年份(採用兩位十進位制表示,如14)
%Y 帶世紀的年份(如2004)
%Z 時間區(如PDT)
%% 一個百分號字元標記(%)

格式

systime([format specification] [, timestamp])

範例

$ awk 'BEGIN{now=strftime("%D",systime()); print now)'
10/09/04
$ awk 'BEGIN {now=strftime("%T"); print now)'
17:58:03
$ awk 'BEGIN{now=strftime("%m/%d%y"); print now}'

說明:strftime函式通過一個引數所給出的格式來設定時間和日期的形式。如果以systime作為第2個引數,或者不帶第2個引數,將使用本地的當前時間。如果帶了第2個引數,則它必須與systime函式的返回值格式一致。