github.com/GuanceCloud/cliutils@v1.1.21/pipeline/ptinput/funcs/md/datetime.md (about) 1 ### `datetime()` {#fn-datetime} 2 3 函数原型:`fn datetime(key, precision: str, fmt: str, tz: str = "")` 4 5 函数说明:将时间戳转成指定日期格式 6 7 函数参数: 8 9 - `key`: 已经提取的时间戳 10 - `precision`:输入的时间戳精度(s, ms, us, ns) 11 - `fmt`:日期格式,提供内置日期格式且支持自定义日期格式 12 - `tz`: 时区 (可选参数),将时间戳转换为指定时区的时间,默认使用主机的时区 13 14 内置日期格式: 15 16 | 内置格式 | 日期 | 描述 | 17 | --- | --- | --- | 18 | "ANSI-C" | "Mon Jan _2 15:04:05 2006" | | 19 | "UnixDate" | "Mon Jan _2 15:04:05 MST 2006" | | 20 | "RubyDate" | "Mon Jan 02 15:04:05 -0700 2006" | | 21 | "RFC822" | "02 Jan 06 15:04 MST" | | 22 | "RFC822Z" | "02 Jan 06 15:04 -0700" | RFC822 with numeric zone | 23 | "RFC850" | "Monday, 02-Jan-06 15:04:05 MST" | | 24 | "RFC1123" | "Mon, 02 Jan 2006 15:04:05 MST" | | 25 | "RFC1123Z" | "Mon, 02 Jan 2006 15:04:05 -0700" | RFC1123 with numeric zone | 26 | "RFC3339" | "2006-01-02T15:04:05Z07:00" | | 27 | "RFC3339Nano" | "2006-01-02T15:04:05.999999999Z07:00" | | 28 | "Kitchen" | "3:04PM" | | 29 30 自定义日期格式: 31 32 可通过占位符的组合自定义输出日期格式 33 34 | 字符 | 示例 | 描述 | 35 | --- | --- | --- | 36 | a | %a | 星期的缩写,如 `Wed` | 37 | A | %A | 星期的全写,如 `Wednesday` | 38 | b | %b | 月份缩写,如 `Mar` | 39 | B | %B | 月份的全写,如 `March` | 40 | C | %c | 世纪数,当前年份除 100 | 41 | **d** | %d | 一个月内的第几天;范围 `[01, 31]` | 42 | e | %e | 一个月内的第几天;范围 `[1, 31]`,使用空格填充 | 43 | **H** | %H | 小时,使用 24 小时制; 范围 `[00, 23]` | 44 | I | %I | 小时,使用 12 小时制; 范围 `[01, 12]` | 45 | j | %j | 一年内的第几天,范围 `[001, 365]` | 46 | k | %k | 小时,使用 24 小时制; 范围 `[0, 23]` | 47 | l | %l | 小时,使用 12 小时制; 范围 `[1, 12]`,使用空格填充 | 48 | **m** | %m | 月份,范围 `[01, 12]` | 49 | **M** | %M | 分钟,范围 `[00, 59]` | 50 | n | %n | 表示换行符 `\n` | 51 | p | %p | `AM` 或 `PM` | 52 | P | %P | `am` 或 `pm` | 53 | s | %s | 自 1970-01-01 00:00:00 UTC 来的的秒数 | 54 | **S** | %S | 秒数,范围 `[00, 60]` | 55 | t | %t | 表示制表符 `\t` | 56 | u | %u | 星期几,星期一为 1,范围 `[1, 7]` | 57 | w | %w | 星期几,星期天为 0, 范围 `[0, 6]` | 58 | y | %y | 年份,范围 `[00, 99]` | 59 | **Y** | %Y | 年份的十进制表示 | 60 | **z** | %z | RFC 822/ISO 8601:1988 风格的时区 (如: `-0600` 或 `+0100` 等) | 61 | Z | %Z | 时区缩写,如 `CST` | 62 | % | %% | 表示字符 `%` | 63 64 示例: 65 66 ```python 67 # 待处理数据: 68 # { 69 # "a":{ 70 # "timestamp": "1610960605000", 71 # "second":2 72 # }, 73 # "age":47 74 # } 75 76 # 处理脚本 77 json(_, a.timestamp) 78 datetime(a.timestamp, 'ms', 'RFC3339') 79 ``` 80 81 ```python 82 # 处理脚本 83 ts = timestamp() 84 datetime(ts, 'ns', fmt='%Y-%m-%d %H:%M:%S', tz="UTC") 85 86 # 输出 87 { 88 "ts": "2023-03-08 06:43:39" 89 } 90 ``` 91 92 ```python 93 # 处理脚本 94 ts = timestamp() 95 datetime(ts, 'ns', '%m/%d/%y %H:%M:%S %z', "Asia/Tokyo") 96 97 # 输出 98 { 99 "ts": "03/08/23 15:44:59 +0900" 100 } 101 ```