概念解释
LTS DSL语法中的日期时间处理主要涉及三种数据类型:日期时间字符串、日期时间对象和Unix时间戳。
- 日期时间字符串:日期时间字符串的主要用途是为了便于展示以及提升用户可读性。
LTS DSL语法中的日期时间字符串主要分为两种形式:
- 带有时区信息的日期时间字符串,如2018-06-02 18:41:26+08:00。
- 不带时区信息的日期时间字符串,如2019-06-02 10:41:26。
带有时区信息的日期时间字符串通过在日期时间后添加额外的时差信息来表达时区:
- 2019-06-02 18:41:26+08:00表示该时间是东8区时区下的2019-06-02 18:41:26。
- 2019-06-02 18:41:26-07:00表示该时间是西7区时区下的2019-06-02 18:41:26。
- 日期时间对象
- Unix时间戳
从1970年1月1日(UTC/GMT的午夜)开始所经过的秒数。Unix时间戳的主要应用场景有:
表示系统时间:日志事件中表示日志接收时间的字段collectTime字段的值就是使用Unix时间戳来表示对应的系统时间,如下例所示。source: 192.0.2.1 collectTime: 1562741899 topic:
时间相关的计算:Unix时间戳是从1970年1月1日开始所经过的秒数,因此在很多场景下便于直接进行日期时间相关的计算,例如如下示例。
- 原始日志
{ "time1": 1562741899, "time2": 1562731122 }
- 加工规则
e_set("time_diff", op_sub(v("time1"), v("time2")))
- 加工结果
{ time1: 1562741899 time2: 1562731122 time_diff: 10777 }
- 原始日志