更新时间:2024-11-07 GMT+08:00
分享

日期时间字符串和Unix时间戳的相互转换

  1. 处理函数
    • dt_str智能转换函数,可以将Unix时间戳、日期时间对象和日期时间字符串转化为指定格式的日期时间字符串。
    • dt_strftimestamp函数只支持将Unix时间戳转化为日期时间字符串。
    • dt_parsetimestamp智能转换函数,可以将日期时间字符串或日期时间对象转换为Unix时间戳。
  2. 场景1:不带时区信息的日期时间字符串类型转换为Unix时间戳。

    对于不带时区信息的日期时间字符串如2019-06-02 18:41:26,将日期时间转化为Unix时间戳,需要指定该日期时间的时区,不同的时区转化得到的Unix时间戳的值不一样。

    • 原始日志
      {
          "time": "2019-07-10 14:58:19"
      }
    • 加工规则
      e_set("Shanghai_timestamp", dt_parsetimestamp(v("time"), tz="Asia/Shanghai"))
      e_set("Los_Angeles_timestamp", dt_parsetimestamp(v("time"), tz="America/Los_Angeles"))
      e_set("UTC_timestamp", dt_parsetimestamp(v("time")))
    • 加工结果
      {
      "time": "2019-07-10 14:58:19",
      "Shanghai_timestamp": 1562741899,
      "Los_Angeles_timestamp": 1562795899,
      "UTC_timestamp": 1562770699
      }
  3. 子场景2:自定义的不带时区的特殊日期格式转换成Unix时间戳。
    • 原始日志
      {
          "time1" : "2019-07-10 06:58:19",
          "time2": "2019/07/10 06-58-19"
      }
    • 加工规则
      e_set("time3", dt_parsetimestamp(v("time1")))   
      e_set("time4", dt_parsetimestamp(dt_strptime(v("time2"), "%Y/%m/%d %H-%M-%S")))
    • 加工结果
      {
      	"time1": "2019-07-10 06:58:19",
      	"time2": "2019/07/10 06-58-19",
      	"time3": 1562741899,
      	"time4": 1562741899
      }

相关文档