时间值处理函数

最近更新时间:2024-07-08 15:22:01

我的收藏

简介

日志中的时间处理函数,包括将 Date 类型转为 String 类型、时间类字段值和 UTC 时间互转以及获取当前时间。

dt_str 函数

函数定义

将时间类的字段值(特定格式的日期字符串或者时间戳),转换为指定时区、格式的目标日期字符串。

语法描述

dt_str(, format="格式化字符串", zone="")

参数说明

参数名称
参数描述
参数类型
是否必须
参数默认值
参数取值范围
data
字段值,可支持的解析格式可参考 dateparser
string
-
-
format
格式化日期格式可参考 DateTimeFormatter
string
-
-
zone
默认 UTC 时间,不指定时区。时区定义可参考 ZoneId
string
UTC+00:00
-

示例

原始日志:
{"date":"2014-04-26 13:13:44 +09:00"}
加工规则:
fields_set("result", dt_str(v("date"), format="yyyy-MM-dd HH:mm:ss", zone="UTC+8"))
加工结果:
{"date":"2014-04-26 13:13:44 +09:00","result":"2014-04-26 12:13:44"}

dt_to_timestamp 函数

函数定义

将时间类的字段值(特定格式的日期字符串),同时指定字段对应的时区,转换为 UTC 时间戳。

语法描述

dt_to_timestamp(, zone="")

参数说明

参数名称
参数描述
参数类型
是否必须
参数默认值
参数取值范围
data
字段值,可支持的解析格式可参考 dateparser
string
-
-
zone
默认 UTC 时间,不指定时区。如果指定此值,则必须和时间字段值对应,否则会出现时区错误问题。时区定义可参考 ZoneId
string
UTC+00:00
-

示例

原始日志:
{"date":"2021-10-26 15:48:15"}
加工规则:
fields_set("result", dt_to_timestamp(v("date"), zone="UTC+8"))
加工结果:
{"date":"2021-10-26 15:48:15","result":"1635234495000"}

dt_from_timestamp 函数

函数定义

将时间类的时间戳字段,指定目标时区后,转换为时间字符串。

语法描述

dt_from_timestamp(, zone="")

参数说明

参数名称
参数描述
参数类型
是否必须
参数默认值
参数取值范围
data
字段值,可支持的解析格式可参考 dateparser
string
-
-
zone
默认 UTC 时间,不指定时区。时区定义可参考 ZoneId
string
UTC+00:00
-

示例

原始日志:
{"date":"1635234495000"}
加工规则:
fields_set("result", dt_from_timestamp(v("date"), zone="UTC+8"))
加工结果:
{"date":"1635234495000","result":"2021-10-26 15:48:15"}

dt_now 函数

函数定义

获取加工计算时的本地时间。

语法描述

dt_now(format="格式化字符串", zone="")

参数说明

参数名称
参数描述
参数类型
是否必须
参数默认值
参数取值范围
format
格式化日期格式,可参考DateTimeFormatter
string
-
-
zone
默认 UTC 时间,不指定时区。时区定义可参考 ZoneId
string
UTC+00:00
-

示例

原始日志:
{"date":"1635234495000"}
加工规则:
fields_set("now", dt_now(format="yyyy-MM-dd HH:mm:ss", zone="UTC+8"))
加工结果,仅参考,具体结果和系统时间相关:
{"date":"1635234495000","now":"2021-MM-dd HH:mm:ss"}

custom_cls_log_time 函数

函数定义

自定义日志时间,会按照您的加工规则生成新的日志时间,支持 秒、毫秒、微秒、纳秒。点击执行预览后,您可在加工结果中,查看__TIMESTAMP__字段的值,是否已改变为您的预期结果。

语法描述

custom_cls_log_time(time)

参数说明

参数名称
参数描述
参数类型
是否必须
参数默认值
参数取值范围
time
UTC 时间戳类型,时区定义可参考 ZoneId,支持 秒、毫秒、微秒、纳秒,例如1565064739000
string
UTC+00:00
-

返回值

UTC 时间戳类型,例如1565064739000。

示例

原始日志:
{"field1": "1","time":"06/Aug/2019 12:12:19"}
加工规则:
custom_cls_log_time(dt_to_timestamp(v("time"), zone="UTC+8"))
加工结果,仅参考,具体结果和系统时间相关:
{"__TIMESTAMP__":"1565064739000", "field1":"1", "time":"06/Aug/2019 12:12:19"}