awk時間函式
阿新 • • 發佈:2019-01-23
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函式的返回值格式一致。