parseDate
parseDate operator を使用すると、文字列から日付または時刻を抽出して、タイムスタンプ (ミリ秒) を取得できます。エポック タイムスタンプを判読可能な形式に変換するには、formatDate
operator を使用します。
構文
parseDate(<strDate>, <dateFormat>)
parseDate(<strDate>, <dateFormat>, <timeZone>)
ルール
strDate
はdateFormat
パターンと一致する文字で始まる必要があります。たとえば、"other 3/4/2005" ではなく、"3/4/2005 other" のように指定します。dateFormat
はパターン文字列 ("MM/dd/yyyy HH:mm:ss a" など) です。サポートされるパターンの完全なリストは Java の simpledateformat ドキュメントにあります。timeZone,
を指定しないと、環境設定で設定されているタイム ゾーンが使用されます。timeZone
コードのリストについては、https://en.wikipedia.org/wiki/List_of_tz_database_time_zones を参照してください。
例
- 日付が
2019-11-18T19:00:00.000-08:00
の場合、dateFormat
をyyyy-MM-dd'T'HH:mm:ss.SSSXXX
と指定します。例:
| parseDate(date, "yyyy-MM-dd'T'HH:mm:ss.SSSXXX") as milliseconds
- 次のようなログ メッセージがあるとします。
instance of Win32_NTLogEvent { EventIdentifier = 100; Logfile = "Application"; RecordNumber = 894528; SourceName = "Bonjour Service"; TimeGenerated = "20170720000030.000000-000"; TimeWritten = "20170720000030.000000-000"; Type = "Error"; ...
次のクエリを実行すると、タイムスタンプ (ミリ秒) として TimeGenerated (この例では 1500534030000) が返されます。
| parse "TimeGenerated = \"*.000000-000" as dd
| parseDate(dd, "yyyyMMddHHmmss") as milliseconds
タイム ゾーンを指定するには:
| parseDate(dd, "yyyyMMddHHmmss", "etc/utc") as milliseconds