AWK - 时间函数
AWK 有以下内置时间函数 −
systime
此函数返回一天中的当前时间,作为自纪元以来的秒数(在 POSIX 系统上为 1970-01-01 00:00:00 UTC)。
示例
[jerry]$ awk 'BEGIN { print "Number of seconds since the Epoch = " systime() }'
在执行此代码时,您会得到以下结果 −
输出
Number of seconds since the Epoch = 1418574432
mktime(datespec)
此函数将 datespec 字符串转换为与 systime() 返回的格式相同的时间戳。 datespec 是 YYYY MM DD HH MM SS 形式的字符串。
示例
[jerry]$ awk 'BEGIN { print "Number of seconds since the Epoch = " mktime("2014 12 14 30 20 10") }'
在执行此代码时,您会得到以下结果 −
输出
Number of seconds since the Epoch = 1418604610
strftime([format [, timestamp[, utc-flag]]])
此函数根据格式规范格式化时间戳。
示例
[jerry]$ awk 'BEGIN { print strftime("Time = %m/%d/%Y %H:%M:%S", systime()) }'
在执行此代码时,您会得到以下结果 −
输出
Time = 12/14/2014 22:08:42
AWK 支持以下时间格式 −
序号 | 日期格式规范 & 描述 |
---|---|
1 |
%a 语言环境的缩写工作日名称。 |
2 |
%A 语言环境的完整工作日名称。 |
3 |
%b 语言环境的缩写月份名称。 |
4 |
%B 语言环境的完整月份名称。 |
5 |
%c 区域设置的适当日期和时间表示。 (这是 C 语言环境中的 %A %B %d %T %Y。) |
6 |
%C 当前年份的世纪部分。 这是年份除以 100 并截断为下一个较小的整数。 |
7 |
%d 以十进制数表示的月份中的日期 (01–31). |
8 |
%D 等效于指定 %m/%d/%y。 |
9 |
%e 月份中的日期,如果只有一位数字,则用空格填充。 |
10 |
%F 等效于指定 %Y-%m-%d。 这是 ISO 8601 日期格式。 |
11 |
%g ISO 8601 周数的年模 100,作为十进制数 (00–99)。 例如,1993 年 1 月 1 日是 1992 年的第 53 周。因此,其 ISO 8601 周编号的年份是 1992 年,即使它的年份是 1993 年。同样,1973 年 12 月 31 日是 1974 年的第 1 周。因此, 其 ISO 周数的年份是 1974,尽管它的年份是 1973。 |
12 |
%G ISO 周数的全年,十进制数。 |
13 |
%h 相当于%b。 |
14 |
%H 小时(24 小时制)作为十进制数 (00–23)。 |
15 |
%I 小时(12 小时制)作为十进制数 (01–12)。 |
16 |
%j 以十进制数表示的一年中的日期 (001–366)。 |
17 |
%m 十进制数字形式的月份 (01–12)。 |
18 |
%M 十进制数形式的分钟 (00–59)。 |
19 |
%n 换行符 (ASCII LF)。 |
20 |
%p 区域设置相当于与 12 小时制相关的 AM/PM 名称。 |
21 |
%r 语言环境的 12 小时制时间。 (这是 C 语言环境中的 %I:%M:%S %p。) |
22 |
%R 等效于指定 %H:%M。 |
23 |
%S 第二个十进制数 (00–60)。 |
24 |
%t 一个 TAB 字符。 |
25 |
%T 等效于指定 %H:%M:%S。 |
26 |
%u 工作日为十进制数 (1–7)。 星期一是第一天。 |
27 |
%U 一年中的周数(第一个星期日作为第一周的第一天)作为十进制数 (00–53)。 |
28 |
%V 一年中的周数(第一个星期一作为第一周的第一天)作为十进制数 (01–53)。 |
29 |
%w 工作日为十进制数 (0–6)。 星期天是零天。 |
30 |
%W 一年中的周数(第一个星期一作为第一周的第一天),十进制数 (00–53)。 |
31 |
%x 语言环境的适当日期表示。 (这是 C 语言环境中的 %A %B %d %Y。)。 |
32 |
%X 语言环境的适当时间表示。 (这是 C 语言环境中的 %T。)。 |
33 |
%y 年以 100 为十进制数 (00–99)。 |
34 |
%Y 以十进制数表示的全年(例如 2011 年)。 |
35 |
%z +HHMM 格式的时区偏移量(例如,生成 RFC 822/RFC 1036 日期标头所需的格式)。 |
36 |
%Z 时区名称或缩写; 如果没有可确定的时区,则没有字符。 |