当前位置: 首页 > 文档资料 > Awk 中文教程 >

时间函数(Time Functions)

优质
小牛编辑
128浏览
2023-12-01

AWK具有以下内置时间功能 -

systime

此函数返回当天的当前时间,作为自Epoch(1970IX-01 00:00:00 UTC在POSIX系统上)以来的秒数。

例子 (Example)

[jerry]$ awk 'BEGIN {
   print "Number of seconds since the Epoch = " systime()
}'

执行此代码时,您将获得以下结果 -

输出 (Output)

Number of seconds since the Epoch = 1418574432

mktime(datespec)

此函数将datespec字符串转换为systime()返回的相同格式的时间戳。 datespec是YYYY MM DD HH MM SS形式的字符串。

例子 (Example)

[jerry]$ awk 'BEGIN {
   print "Number of seconds since the Epoch = " mktime("2014 12 14 30 20 10")
}'

执行此代码时,您将获得以下结果 -

输出 (Output)

Number of seconds since the Epoch = 1418604610

strftime([format [, timestamp[, utc-flag]]])

此函数根据格式的规范格式化时间戳。

例子 (Example)

[jerry]$ awk 'BEGIN {
   print strftime("Time = %m/%d/%Y %H:%M:%S", systime())
}'

执行此代码时,您将获得以下结果 -

输出 (Output)

Time = 12/14/2014 22:08:42

AWK支持以下时间格式 -

S.No.日期格式规范和描述
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小时时钟。 (这是%I:%M:C语言环境中的%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

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