AWK 时间函数
AWK具有以下内置的时间函数−
systime
此函数以从纪元(1970-01-01 00:00:00 UTC,POSIX系统上)以来的秒数的形式返回当天的当前时间。
示例
[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]]])
此函数根据format中的规范格式化时间戳。
示例
[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小时制的上午/下午标识。 |
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)。星期日为0。 |
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 时区的名称或缩写;如果无法确定时区,则没有字符。 |