awk提供三个时间函数来进行时间的获取和进行时间的格式化:systime、strftime以及mktime
一、systime函数
systime函数返回当前时间戳
systime函数使用格式如下:
systime()
栗子如下:
二、strftime函数
strftime函数,可以对时间戳进行格式化,格式化形式可以为%Y-%m-%d等(可见下表),如果函数有传参时间戳,则相应进行时间戳的格式转化,如果函数当中没有传参,则默认使用当前时间戳进行格式转化
strftime函数使用格式如下:
strftime([format],[ timestamp])
栗子如下:
格式形式可见下表:
日期格式 | 定义 |
---|---|
%Y | 带世纪的年份(如2018) |
%m | 用十进制表示的月数( 如09) |
%d | 用十进制表示的月份中的某一天( 如20) |
%H | 用十进制表示的24 小时制的小时数以( 如20) |
%M | 用十进制表示的分钟数( 如15) |
%S | 用十进制表示的秒数(如15) |
%a | 简写的星期名(如Sun) |
%A | 完整的星期名(如Sunday) |
%b | 简写的月名(如Oct) |
%B | 完整的月名(如October) |
%c | 本地的日期和时间(如Sun Oct 17 15:26:46 2014) |
%D | 采用18/09/20 形式表示的日期 |
%e | 月份中的某一夭,如果只有一位数字,用空格填充份 |
%I | 用十进制表示的12 小时制的小时数( 如03) |
%j | 用十进制表示的从当年1 月1 日以来的天数。(如360) |
%p | 采用12 小时制表示的AM/PM 表示法(如PM) |
%U | 用十进制表示的一年中的周数(星期日作为一周的开始)(如42) |
%w | 用十进制表示的星期数(如星期日为0) |
%W | 用十进制表示的一年中的周数(星期一作为一周的开始)(如41) |
%x | 本地日期(如 18/09/20) |
%X | 本地时间(如15:26:26) |
%y | 用十进制表示的年份(采用两位十进制表示,如14) |
%Z | 时间区(如PDT) |
%% | 一个百分号字符标记(%) |
三、mktime函数
mktime函数创建指定时间,转化为时间戳
mktime函数用法如下:
mktime(YYYY" "MM" "DD" "HH" "MM" "SS)
注意必须使用空格分割
其中YYYY为年 MM为月 DD为日 HH为小时 MM是分 SS为秒,如2018" "09" "20" "20" "22" "30
栗子如下: