> For the complete documentation index, see [llms.txt](https://ilogtail.gitbook.io/ilogtail-docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://ilogtail.gitbook.io/ilogtail-docs/pre-release/plugins/chu-li-cha-jian/kuo-zhan-chu-li-cha-jian/processor-strptime.md).

# 时间提取（strptime 格式）

## 简介

`processor_strptime`插件可从指定字段中提取日志时间，时间格式为 [Linux strptime](http://man7.org/linux/man-pages/man3/strptime.3.html)。

## 事件能力

列含义见 [概览 · 事件能力列说明](https://ilogtail.gitbook.io/ilogtail-docs/pre-release/plugins/chu-li-cha-jian/kuo-zhan-chu-li-cha-jian/pages/V3l051tHPlzCBkmzOfvu#事件能力列说明)。

| v1 接口 | v2 接口 | Log | Metric | Span |
| ----- | ----- | --- | ------ | ---- |
| ✓     | —     | v1  | 透传未知   | 透传未知 |

## 版本

[Stable](/ilogtail-docs/pre-release/plugins/stability-level.md)

## 版本说明

* 推荐版本：iLogtail v1.7.0 及以上

## 配置参数

| 参数                     | 类型     | 是否必选 | 参数说明                                                                                            |
| ---------------------- | ------ | ---- | ----------------------------------------------------------------------------------------------- |
| Type                   | string | 是    | 插件类型，固定为`processor_strptime`。                                                                   |
| SourceKey              | string | 是    | 源 Key，为空不生效。                                                                                    |
| Format                 | string | 是    | 解析指定字段所使用的时间格式。                                                                                 |
| AdjustUTCOffset        | bool   | 否    | 是否对时间时区进行调整，默认为 false。                                                                          |
| UTCOffset              | int    | 否    | 用于调整的时区偏移秒数，如 28800 表示东八区。                                                                      |
| AlarmIfFail            | bool   | 否    | 提取失败时是否告警，默认为 true。                                                                             |
| KeepSource             | bool   | 否    | 是否保留源字段，默认为 true。                                                                               |
| EnablePreciseTimestamp | bool   | 否    | 是否提取高精度时间。设置为 true 后，该插件会将 SourceKey 参数对应的字段值解析为毫秒级别的时间戳，并存入 PreciseTimestampKey 参照中对应的字段。默认为否。 |
| PreciseTimestampKey    | string | 否    | 保存高精度时间戳的字段。默认值为 precise\_timestamp 字段。                                                         |
| PreciseTimestampUnit   | string | 否    | 高精度时间戳的单位。默认值为 ms。取值包括 ms（毫秒）、us（微秒）、ns（纳秒）。                                                    |

## 示例

### 示例 1

以格式 `%Y/%m/%d %H:%M:%S` 解析字段 `log_time` 的值作为日志时间，时区使用机器时区，此处假设为东八区。

配置详情及处理结果如下：

* 输入

```json
{"log_time": "2016/01/02 12:59:59"}
```

* 配置详情

```yaml
processors:
  - Type: processor_strptime
    SourceKey: log_time
    Format: "%Y/%m/%d %H:%M:%S"
```

* 配置后结果

```json
{
    "log_time": "2016/01/02 12:59:59",
    "Log.Time": 1451710799
}
```

（`Log.Time` 为解析得到的日志时间字段示意。）

### 示例 2

时间格式同示例 1，但是配置中指定日志时区为东七区。

配置详情及处理结果如下：

* 输入

```json
{"log_time": "2016/01/02 12:59:59"}
```

* 配置详情

```yaml
processors:
  - Type: processor_strptime
    SourceKey: log_time
    Format: "%Y/%m/%d %H:%M:%S"
    AdjustUTCOffset: true
    UTCOffset: 25200
```

* 配置后结果

```json
{
    "log_time": "2016/01/02 12:59:59",
    "Log.Time": 1451714399
}
```

（`Log.Time` 为按东七区调整后的日志时间示意。）
