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

时区名称或缩写; 如果没有可确定的时区,则没有字符。

❮ AWK 内置函数