Временные операции
now
Описание: Возвращает текущую дату и время в формате Unix Timestamp
В данном примере поле res может принять значение 1710752009
... | eval res=now()
relative_time
Описание: Принимает на вход Unix время и параметр смещения. Возвращает новое время в формате Unix Timestamp
Поддерживаемый формат: (+|-)<int>@(s|m|h|d|w|M)
- s — секунды
- m — минуты
- h — часы
- d — дни
- w — недели
- M — месяцы
По умолчанию: секунды
В примере res примет значение now() минус 1 день
... | eval res=relative_time(now(), -1@d)
В примере res примет значение now() плюс 3600 секунд
... | eval res=relative_time(now(), 3600)
strftime
Описание: Принимает на вход Unix время и формат возвращаемого значения
Функция использует формат Joda Time. Подробности в документации
В примере starttime примет значение 2018-3-19T13:55:03
... | eval StartTimestamp=1521467703049000000, starttime=strftime(StartTimestamp/pow(10,9),"Y-M-d'T'H:mm:ss")
Пример с использованием peval
... | peval StartTimestamp=1521467703, starttime=strftime(StartTimestamp, "yyyy-M-d'T'HH:mm:ss")
strptime
Описание: Принимает на вход дату/время и формат заданного параметра. Возвращает UNIX время
Функция использует формат Joda Time. Подробности в документации
В примере starttime примет значение 1589892240
... | eval starttime=strptime("2020-05-19 12:44","Y-M-d HH:mm")
В командах eval и peval используется разный синтаксис шаблона.
В peval используется синтаксис шаблона SimpleDateTime,
а eval Joda Time.
Формат Joda Time в основном совместим с SimpleDateFormat, но есть различия в задании временной зоны.
Например, для разбора даты 2000-01-01T12:30:00.000+0100
в команде eval можно применить шаблон YYYY-MM-dd'T'HH:mm:ss.SSZ,
а в команде peval используется ISO 8601 yyyy-MM-dd'T'HH:mm:ss.SSSXXX
В примере поле created равно 2020-05-19T12:44:00.123Z. В результате res примет значение 1589892240, а res1 — 1589892240.123
... | peval res=strptime(tostring(created), "yyyy-MM-dd'T'HH:mm:ss.SSSX") | eval res1=strptime(created,"YYYY-MM-dd'T'HH:mm:ss.SSS'Z'")
time
Описание: Возвращает текущую дату и время в формате Unix Timestamp.
Пример:
... | eval res=time()
to_timezone
Описание: Принимает на вход Unix-время и название/смещение временной зоны. Возвращает Unix-время, приведенное к указанной временной зоне. Название временной зоны можно не указывать, тогда входное значение Unix-времени приведется к локальной временной зоне.
Названия перечисленных временных зон не поддерживаются, так как их названия устаревшие: MST, Factory, ROC, HST, EST.
... | eval res = to_timezone(1769072333, "Europe/Paris")
В примере поле res примет значение 1769075933, что обусловлено учетом смещения UTC+01:00 для указанной временной зоны.
... | eval res = to_timezone(1769072333, "UTC+02:00")
В примере поле res примет значение 1769079533.
... | eval res = to_timezone(1769072333)
В примере поле res примет значение 1769083133. Это связано с тем, что расчет производится для московской временной зоны.
from_timezone
Описание: Принимает на вход Unix-время и название/смещение временной зоны. Возвращает Unix-время, приведенное из временной зоны к UTC.
Названия перечисленных временных зон не поддерживаются, так как их названия устаревшие: MST, Factory, ROC, HST, EST.
... | eval res = from_timezone(1769072333, "Europe/Paris")
В примере поле res примет значение 1769068733, поскольку указанная временная зона имеет положительное смещение +1 час относительно UTC (UTC+01:00).