github.com/GuanceCloud/cliutils@v1.1.21/pipeline/ptinput/funcs/md/default_time.md (about) 1 ### `default_time()` {#fn-defalt-time} 2 3 函数原型:`fn default_time(key: str, timezone: str = "")` 4 5 函数说明:以提取的某个字段作为最终数据的时间戳 6 7 函数参数 8 9 - `key`: 指定的 key, key 的数据类型需要为字符串类型 10 - `timezone`: 指定待格式化的时间文本所使用的时区,可选参数,默认为当前系统时区,时区示例 `+8/-8/+8:30` 11 12 待处理数据支持以下格式化时间 13 14 <!-- markdownlint-disable MD038 --> 15 | 日期格式 | 日期格式 | 日期格式 | 日期格式 | 16 | ----- | ---- | ---- | ---- | 17 | `2014-04-26 17:24:37.3186369` | `May 8, 2009 5:57:51 PM` | `2012-08-03 18:31:59.257000000` | `oct 7, 1970` | 18 | `2014-04-26 17:24:37.123` | `oct 7, '70` | `2013-04-01 22:43` | `oct. 7, 1970` | 19 | `2013-04-01 22:43:22` | `oct. 7, 70` | `2014-12-16 06:20:00 UTC` | `Mon Jan 2 15:04:05 2006` | 20 | `2014-12-16 06:20:00 GMT` | `Mon Jan 2 15:04:05 MST 2006` | `2014-04-26 05:24:37 PM` | `Mon Jan 02 15:04:05 -0700 2006` | 21 | `2014-04-26 13:13:43 +0800` | `Monday, 02-Jan-06 15:04:05 MST` | `2014-04-26 13:13:43 +0800 +08` | `Mon, 02 Jan 2006 15:04:05 MST` | 22 | `2014-04-26 13:13:44 +09:00` | `Tue, 11 Jul 2017 16:28:13 +0200 (CEST)` | `2012-08-03 18:31:59.257000000 +0000 UTC` | `Mon, 02 Jan 2006 15:04:05 -0700` | 23 | `2015-09-30 18:48:56.35272715 +0000 UTC` | `Thu, 4 Jan 2018 17:53:36 +0000` | `2015-02-18 00:12:00 +0000 GMT` | `Mon 30 Sep 2018 09:09:09 PM UTC` | 24 | `2015-02-18 00:12:00 +0000 UTC` | `Mon Aug 10 15:44:11 UTC+0100 2015` | `2015-02-08 03:02:00 +0300 MSK m=+0.000000001` | `Thu, 4 Jan 2018 17:53:36 +0000` | 25 | `2015-02-08 03:02:00.001 +0300 MSK m=+0.000000001` | `Fri Jul 03 2015 18:04:07 GMT+0100 (GMT Daylight Time)` | `2017-07-19 03:21:51+00:00` | `September 17, 2012 10:09am` | 26 | `2014-04-26` | `September 17, 2012 at 10:09am PST-08` | `2014-04` | `September 17, 2012, 10:10:09` | 27 | `2014` | `2014:3:31` | `2014-05-11 08:20:13,787` | `2014:03:31` | 28 | `3.31.2014` | `2014:4:8 22:05` | `03.31.2014` | `2014:04:08 22:05` | 29 | `08.21.71` | `2014:04:2 03:00:51` | `2014.03` | `2014:4:02 03:00:51` | 30 | `2014.03.30` | `2012:03:19 10:11:59` | `20140601` | `2012:03:19 10:11:59.3186369` | 31 | `20140722105203` | `2014 年 04 月 08 日 ` | `1332151919` | `2006-01-02T15:04:05+0000` | 32 | `1384216367189` | `2009-08-12T22:15:09-07:00` | `1384216367111222` | `2009-08-12T22:15:09` | 33 | `1384216367111222333` | `2009-08-12T22:15:09Z` | 34 <!-- markdownlint-enable --> 35 36 JSON 提取示例: 37 38 ```python 39 # 原始 json 40 { 41 "time":"06/Jan/2017:16:16:37 +0000", 42 "second":2, 43 "third":"abc", 44 "forth":true 45 } 46 47 # pipeline 脚本 48 json(_, time) # 提取 time 字段 49 default_time(time) # 将提取到的 time 字段转换成时间戳 50 51 # 处理结果 52 { 53 "time": 1483719397000000000, 54 } 55 ``` 56 57 文本提取示例: 58 59 ```python 60 # 原始日志文本 61 2021-01-11T17:43:51.887+0800 DEBUG io io/io.go:458 post cost 6.87021ms 62 63 # pipeline 脚本 64 grok(_, '%{TIMESTAMP_ISO8601:log_time}') # 提取日志时间,并将字段命名为 log_time 65 default_time(log_time) # 将提取到的 log_time 字段转换成时间戳 66 67 # 处理结果 68 { 69 "log_time": 1610358231887000000, 70 } 71 72 # 对于 logging 采集的数据,最好将时间字段命名为 time,否则 logging 采集器会以当前时间填充 73 rename("time", log_time) 74 75 # 处理结果 76 { 77 "time": 1610358231887000000, 78 } 79 ``` 80