Awk-time-functions
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 タイムゾーン名または略語。タイムゾーンを決定できない場合、文字は使用できません。 |