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

日期时间对象和日期时间字符串的相互转换

  1. 处理函数
    • dt_parse智能转换函数可以将日期时间字符串或Unix时间戳转换为日期时间对象。
    • dt_astimezone函数返回一个带新时区信息的日期时间对象。
  2. 场景1:不带时区信息的日期时间字符串转换成指定时区的日期时间对象。

    对于不带时区信息的日期时间字符串2019-06-02 18:41:26,可以通过Unix时间戳,实现不同时区下的日期时间的相互转换。将洛杉矶时区的日期时间转换为上海时区的日期时间。

    • 原始日志:已知time字段的值的时间是洛杉矶时间
      {
          "time" : "2019-06-04 2:41:26"
      }
    • 加工规则
      e_set("timestamp", dt_parsetimestamp(v("time"), tz="America/Los_Angeles"))
      e_set("Shanghai_time", dt_parse(v("timestamp"), tz="Asia/Shanghai"))
    • 加工结果
      {
      	"Shanghai_time": "2019-06-04 17:41:26+08:00",
      	"time": "2019-06-04 2:41:26",
      	"timestamp": 1559641286
      }
  3. 场景2:不带时区的日期时间字符串转换成带时区的日期时间对象。
    • 原始日志
      {
          "time" : "2019-07-10 06:58:19"
      }
    • 加工规则
      e_set("new_time", dt_parse(v("time"), tz="Asia/Shanghai"))
    • 加工结果
      {
      	"new_time": "2019-07-10 06:58:19+08:00",
      	"time": "2019-07-10 06:58:19"
      }
  4. 场景3:带时区的日期时间字符串转换为目标时区的日期时间对象。
    • 原始日志
      {
          "time" : "2019-06-04 2:41:26+08:00"
      }
    • 加工规则
      e_set("new_time",dt_astimezone(v("time"), "America/Los_Angeles"))
    • 加工结果
      {
      	"new_time": "2019-06-03 11:41:26-07:00",
      	"time": "2019-06-04 2:41:26+08:00"
      }

相关文档