Awk-time-functions

提供:Dev Guides
移動先:案内検索

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]]])

この関数は、formatの仕様に従ってタイムスタンプをフォーマットします。

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

このコードを実行すると、次の結果が得られます-

出力

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

次の時間形式はAWKによってサポートされています-

S.No. Date format specification & Description
1

%a

ロケールの短縮された曜日名。

2

%A

ロケールの完全な曜日名。

3

%b

ロケールの短縮月名。

4

%B

ロケールの完全な月名。

5

%c

ロケールの適切な日時表現。 (これは、Cロケールでは%A%B%d%T%Yです。)

6

%C

現在の年の世紀の部分。 これは、年を100で除算し、次に低い整数に切り捨てられます。

7

%d

10進数としての月の日(01〜31)。

8

%D

%m/%d/%yを指定するのと同じです。

9

%e

月の日。1桁のみの場合はスペースが埋め込まれます。

10

%F

%Y-%m-%dを指定するのと同じです。 これはISO 8601の日付形式です。

11

%g

10進数(00〜99)としてのISO 8601週番号の100を法とする年。 たとえば、1993年1月1日は1992年の53週目です。 したがって、その年が1993年であっても、ISO 8601の週番号の年は1992です。 同様に、1973年12月31日は1974年の第1週です。 したがって、ISO週番号の年は1973年ですが、1974年です。

12

%G

10進数としてのISO週番号の通年。

13

%h

%bと同等。

14

%H

10進数(00〜23)としての時間(24時間制)。

15

%I

10進数としての時間(12時間制)(01–12)。

16

%j

10進数としての年の日(001から366)。

17

%m

10進数としての月(01〜12)。

18

%M

10進数としての分(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

10進数としての秒(00〜60)。

24

%t

タブ文字。

25

%T

%H:%M:%Sを指定するのと同じです。

26

%u

10進数としての曜日(1〜7)。 月曜日は初日です。

27

%U

10進数(00〜53)としての、その年の週番号(第1日曜日が第1週の最初の日)。

28

%V

10進数(01〜53)としての、その年の週番号(週の最初の日として最初の月曜日)。

29

%w

10進数としての曜日(0〜6)。 日曜日はゼロ日です。

30

%W

10進数(00〜53)としての、その年の週番号(週の最初の日として最初の月曜日)。

31

%x

ロケールの適切な日付表現。 (これは、Cロケールの%A%B%d%Yです。)

32

%X

ロケールの適切な時間表現。 (これは、Cロケールの%Tです。)

33

%y

10進数としてのモジュロ100(00〜99)。

34

%Y

10進数としての通年(例: 2011)。

35

%z

+ HHMM形式(たとえば、RFC 822/RFC 1036日付ヘッダーを生成するために必要な形式)のタイムゾーンオフセット。

36

%Z

タイムゾーン名または略語。タイムゾーンを決定できない場合、文字は使用できません。