---
title: "Timestamp Parser"
description: "extract alphanumeric and epoch timestamp values from input events"
source: "https://github.com/log-10x/modules/tree/main/pipelines/run/units/transform/timestamp/unit.yaml"
icon: "material/stamper"

---
Identify unix/alphanumeric timestamp structures within [TenXTemplates](https://doc.log10x.com/run/template/#structure).

This component enables [TenXObjects](https://doc.log10x.com/api/js/#TenXObject "Provide structured, reflective access to log/trace events read from input(s).") to access embedded timestamp values at runtime as 64-bit epoch values.

For example, for the following Spark log event:

```
15/09/01 18:14:50 INFO spark.SecurityManager: Changing view acls to: yarn,yxsu1
```

The first 17 characters represent a timestamp. Each instance of this TenXTemplate can access its
own timestamp value via the [timestamp](https://doc.log10x.com/api/js/#TenXObject+timestamp "An array of UNIX epoch values of timestamps parsed from the object's text.") array field, which returns  
64-bit Unix epoch value(s) (e.g., 1000577690).

The date/time format of any timestamps found (e.g., 'DD/MM/YY HH:MM:SS')
is encoded into the object's TenXTemplate. Subsequent TenXObjects
associated with that template will skip the timestamp discovery process,
making timestamp extraction highly efficient.

## :material-wrench-outline: Config Files

To configure the Timestamp parser unit, [:material-cog: Edit](https://doc.log10x.com/config/app/#module-config "Learn how to edit app and module configurations") these files.  

Below is the default configuration from: [timestamp/config.yaml](https://github.dev/log-10x/config/blob/main/pipelines/run/transform/timestamp/config.yaml "timestamp/config.yaml"){target="\_blank"}.  
  
<div class="edit-options">
    <a class="md-button tenx-edit-online-button" data-tooltip="Edit online on github.dev" href="https://github.dev/log-10x/config/blob/main/pipelines/run/transform/timestamp/config.yaml" target="_blank" rel="noopener noreferrer">
        <span class="twemoji" style="margin-right: 0.3rem;">
            <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
                <path d="M12 .297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23.96-.267 1.98-.399 3-.405 1.02.006 2.04.138 3 .405 2.28-1.552 3.285-1.23 3.285-1.23.645 1.653.24 2.873.12 3.176.765.84 1.23 1.91 1.23 3.22 0 4.61-2.805 5.625-5.475 5.92.42.36.81 1.096.81 2.22 0 1.606-.015 2.896-.015 3.286 0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12"></path>
            </svg>
        </span> Edit Online
    </a>
    <button class="md-button tenx-config.yaml0-edit-button" data-tooltip="Edit configuration file" data-dialog-id="config-yaml0-dialog">
        <span style="margin-right: 0.3rem;">
            <span class="twemoji">
                <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
                    <path d="M20.71,7.04C21.1,6.65 21.1,6 20.71,5.63L18.37,3.29C18,2.9 17.35,2.9 16.96,3.29L15.12,5.12L18.87,8.87M3,17.25V21H6.75L17.81,9.93L14.06,6.18L3,17.25Z"></path>
                </svg>
            </span>
        </span>Edit Locally
    </button>
</div>

<dialog id="config-yaml0-dialog" class="md-dialog md-dialog--editor">
    <div class="editor-dialog-wrapper">
        <div class="editor-dialog-header">
            <span class="editor-dialog-title">Edit config.yaml Locally</span>
            <div class="editor-header-actions">
                <button class="editor-toolbar-btn yaml-editor-locations" data-tooltip="Save">
                    <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path fill="currentColor" d="M5 20h14v-2H5v2m14-9h-4V3H9v8H5l7 7 7-7Z"></path></svg>
                </button>
                <button class="editor-toolbar-btn yaml-editor-reset" data-tooltip="Reset to default">
                    <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path fill="currentColor" d="M12.5 8c-2.65 0-5.05 1-6.9 2.6L2 7v9h9l-3.62-3.62c1.39-1.16 3.16-1.88 5.12-1.88 3.54 0 6.55 2.31 7.6 5.5l2.37-.78C21.08 11.03 17.15 8 12.5 8z"></path></svg>
                </button>
                <button class="editor-toolbar-btn yaml-editor-copy" data-tooltip="Copy to clipboard">
                    <svg class="icon-copy" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path fill="currentColor" d="M19 21H8V7h11m0-2H8a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h11a2 2 0 0 0 2-2V7a2 2 0 0 0-2-2m-3-4H4a2 2 0 0 0-2 2v14h2V3h12V1Z"></path></svg>
                    <svg class="icon-check" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" style="display:none;"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg>
                </button>
                <span class="header-divider"></span>
                <button class="editor-toolbar-btn yaml-editor-fullscreen" data-tooltip="Fullscreen">
                    <svg class="icon-maximize" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path fill="currentColor" d="M5,5H10V7H7V10H5V5M14,5H19V10H17V7H14V5M17,14H19V19H14V17H17V14M10,17V19H5V14H7V17H10Z"></path></svg>
                    <svg class="icon-minimize" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" style="display:none;"><path fill="currentColor" d="M5,16H8V19H10V14H5V16M14,14V19H16V16H19V14H14M16,5V8H19V10H14V5H16M10,5V10H5V8H8V5H10Z"></path></svg>
                </button>
                <span class="header-divider"></span>
                <button class="editor-toolbar-btn editor-dialog-close" onclick="closeDialog('config-yaml0-dialog')" data-tooltip="Close">
                    <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path fill="currentColor" d="M19,6.41L17.59,5L12,10.59L6.41,5L5,6.41L10.59,12L5,17.59L6.41,19L12,13.41L17.59,19L19,17.59L13.41,12L19,6.41Z"></path></svg>
                </button>
            </div>
        </div>
        <div class="editor-dialog-content">
            <div class="yaml-editor-container"></div>
        </div>
        <div class="yaml-editor-statusbar">
            <span class="yaml-editor-status"></span>
        </div>
    </div>
    <!-- Locations Popup -->
    <div class="locations-popup" style="display: none;">
        <div class="locations-popup-content">
            <div class="locations-popup-header">
                <span class="locations-header-label">Download and save to:</span>
                <button class="locations-popup-close" aria-label="Close">
                    <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="16" height="16">
                        <path fill="currentColor" d="M19,6.41L17.59,5L12,10.59L6.41,5L5,6.41L10.59,12L5,17.59L6.41,19L12,13.41L17.59,19L19,17.59L13.41,12L19,6.41Z"></path>
                    </svg>
                </button>
            </div>
            <ul class="locations-list">
                <li>
                    <span class="location-label">Linux / Docker / macOS
                        <span class="help-icon" data-tooltip="Default system location. The engine automatically reads configs from here at startup. Best for production deployments.">
                            <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="12" height="12"><path fill="currentColor" d="M11 18h2v-2h-2v2m1-16A10 10 0 0 0 2 12a10 10 0 0 0 10 10 10 10 0 0 0 10-10A10 10 0 0 0 12 2m0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8m0-14a4 4 0 0 0-4 4h2a2 2 0 0 1 2-2 2 2 0 0 1 2 2c0 2-3 1.75-3 5h2c0-2.25 3-2.5 3-5a4 4 0 0 0-4-4Z"/></svg>
                        </span>
                    </span>
                    <div class="location-path-row">
                        <code class="default-path location-path" data-tooltip=""
                            data-copy-osx="/etc/log10x/config/run/transform/timestamp/config.yaml"
                            data-copy-nix="/etc/log10x/config/run/transform/timestamp/config.yaml"
                            data-copy-win="C:\log10x\configs/run/transform/timestamp/config.yaml"></code>
                        <button class="copy-btn" data-tooltip="Copy path">
                            <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="14" height="14">
                                <path fill="currentColor" d="M19 21H8V7h11m0-2H8a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h11a2 2 0 0 0 2-2V7a2 2 0 0 0-2-2m-3-4H4a2 2 0 0 0-2 2v14h2V3h12V1Z"></path>
                            </svg>
                        </button>
                    </div>
                </li>
                <li>
                    <span class="location-label">Custom directory
                        <span class="help-icon" data-tooltip="Set TENX_CONFIG environment variable to point to a custom config directory. Useful when you want configs in a non-standard location.">
                            <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="12" height="12"><path fill="currentColor" d="M11 18h2v-2h-2v2m1-16A10 10 0 0 0 2 12a10 10 0 0 0 10 10 10 10 0 0 0 10-10A10 10 0 0 0 12 2m0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8m0-14a4 4 0 0 0-4 4h2a2 2 0 0 1 2-2 2 2 0 0 1 2 2c0 2-3 1.75-3 5h2c0-2.25 3-2.5 3-5a4 4 0 0 0-4-4Z"/></svg>
                        </span>
                    </span>
                    <div class="location-path-row">
                        <code class="location-path" data-tooltip="$TENX_CONFIG/run/transform/timestamp/config.yaml">$TENX_CONFIG/run/transform/timestamp/config.yaml</code>
                        <button class="copy-btn" data-tooltip="Copy path">
                            <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="14" height="14">
                                <path fill="currentColor" d="M19 21H8V7h11m0-2H8a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h11a2 2 0 0 0 2-2V7a2 2 0 0 0-2-2m-3-4H4a2 2 0 0 0-2 2v14h2V3h12V1Z"></path>
                            </svg>
                        </button>
                    </div>
                </li>
                <li>
                    <span class="location-label">Within cloned repo
                        <span class="help-icon" data-tooltip="First run: git clone github.com/log-10x/config. Then save the file to this path within the cloned folder. Use for version control.">
                            <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="12" height="12"><path fill="currentColor" d="M11 18h2v-2h-2v2m1-16A10 10 0 0 0 2 12a10 10 0 0 0 10 10 10 10 0 0 0 10-10A10 10 0 0 0 12 2m0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8m0-14a4 4 0 0 0-4 4h2a2 2 0 0 1 2-2 2 2 0 0 1 2 2c0 2-3 1.75-3 5h2c0-2.25 3-2.5 3-5a4 4 0 0 0-4-4Z"/></svg>
                        </span>
                    </span>
                    <div class="location-path-row">
                        <code class="location-path" data-tooltip="./pipelines/run/transform/timestamp/config.yaml">./pipelines/run/transform/timestamp/config.yaml</code>
                        <button class="copy-btn" data-tooltip="Copy path">
                            <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="14" height="14">
                                <path fill="currentColor" d="M19 21H8V7h11m0-2H8a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h11a2 2 0 0 0 2-2V7a2 2 0 0 0-2-2m-3-4H4a2 2 0 0 0-2 2v14h2V3h12V1Z"></path>
                            </svg>
                        </button>
                    </div>
                </li>
            </ul>
            <div class="locations-popup-footer">
                <button class="locations-download-btn" title="Download config file">
                    <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="14" height="14">
                        <path fill="currentColor" d="M5 20h14v-2H5v2m14-9h-4V3H9v8H5l7 7 7-7Z"></path>
                    </svg>
                    <span>Download</span>
                </button>
            </div>
        </div>
    </div>
</dialog>

<template class="tenx-config-schema" data-encoding="base64">ewogICJ0eXBlIiA6ICJvYmplY3QiLAogICJwcm9wZXJ0aWVzIiA6IHsKICAgICJ0ZW54IiA6IHsKICAgICAgInR5cGUiIDogInN0cmluZyIKICAgIH0sCiAgICAidGltZXN0YW1wIiA6IHsKICAgICAgInR5cGUiIDogIm9iamVjdCIsCiAgICAgICJhZGRpdGlvbmFsUHJvcGVydGllcyIgOiBmYWxzZSwKICAgICAgInByb3BlcnRpZXMiIDogewogICAgICAgICJwYXR0ZXJucyIgOiB7CiAgICAgICAgICAidHlwZSIgOiBbCiAgICAgICAgICAgICJhcnJheSIsCiAgICAgICAgICAgICJzdHJpbmciLAogICAgICAgICAgICAibnVsbCIKICAgICAgICAgIF0sCiAgICAgICAgICAibWFya2Rvd25EZXNjcmlwdGlvbiIgOiAiRGF0ZS10aW1lIGZvcm1hdHMgZm9yIHBhcnNpbmcgdGltZXN0YW1wcyBmcm9tIGlucHV0IGV2ZW50c1xuXG5MaXN0cyBkYXRlLXRpbWUgZm9ybWF0cyBpbiBbSmF2YSBzcGVjaWZpY2F0aW9uXShodHRwczovL2RvY3Mub3JhY2xlLmNvbS9qYXZhc2UvOC9kb2NzL2FwaS9qYXZhL3RpbWUvZm9ybWF0L0RhdGVUaW1lRm9ybWF0dGVyLmh0bWwpIGZvciBwYXJzaW5nIHRpbWVzdGFtcCBlcG9jaCB2YWx1ZXMgZnJvbSBpbnB1dCBldmVudHMuIChEZWZhdWx0OiBbXCJbY29uZmlnLnlhbWxdKGh0dHBzOi8vZ2l0aHViLmNvbS9sb2ctMTB4L2NvbmZpZy90cmVlL21haW4vcGlwZWxpbmVzL3J1bi9jb25maWcvdHJhbnNmb3JtL3RpbWVzdGFtcC9jb25maWcueWFtbClcIl0pIiwKICAgICAgICAgICJpdGVtcyIgOiB7CiAgICAgICAgICAgICJ0eXBlIiA6ICJzdHJpbmciCiAgICAgICAgICB9LAogICAgICAgICAgImRlZmF1bHQiIDogWwogICAgICAgICAgICAiW2NvbmZpZy55YW1sXShodHRwczovL2dpdGh1Yi5jb20vbG9nLTEweC9jb25maWcvdHJlZS9tYWluL3BpcGVsaW5lcy9ydW4vY29uZmlnL3RyYW5zZm9ybS90aW1lc3RhbXAvY29uZmlnLnlhbWwpIgogICAgICAgICAgXQogICAgICAgIH0sCiAgICAgICAgInNlYXJjaERpcmVjdGlvbiIgOiB7CiAgICAgICAgICAidHlwZSIgOiBbCiAgICAgICAgICAgICJzdHJpbmciLAogICAgICAgICAgICAibnVsbCIKICAgICAgICAgIF0sCiAgICAgICAgICAibWFya2Rvd25EZXNjcmlwdGlvbiIgOiAiQ29udHJvbHMgdGhlIHRleHQgZGlyZWN0aW9uKHMpIGluIHdoaWNoIHRvIHNlYXJjaCBmb3IgdGltZXN0YW1wc1xuXG5Db250cm9scyB0aGUgZGlyZWN0aW9uKHMpIHRvIHNlYXJjaCBmb3IgdGltZXN0YW1wcyB3aXRoaW4gYW4gVGVuWE9iamVjdCdzIFt0ZXh0XShodHRwczovL2RvYy5sb2cxMHguY29tL2FwaS9qcy8jVGVuWEJhc2VPYmplY3QrdGV4dCkgZmllbGQuIFBvc3NpYmxlIHZhbHVlczogICAtICoqZnJvbVN0YXJ0Kio6IHNlYXJjaCBmb3IgW3RpbWVzdGFtcE1heFBlck9iamVjdF0oaHR0cHM6Ly9kb2MubG9nMTB4LmNvbS9ydW4vdHJhbnNmb3JtL3RpbWVzdGFtcC8jdGltZXN0YW1wbWF4cGVyb2JqZWN0KSBmcm9tIHRoZSBzdGFydCBvZiBbdGV4dF1odHRwczovL2RvYy5sb2cxMHguY29tL2FwaS9qcy8jVGVuWEJhc2VPYmplY3QrdGV4dCkgdG8gcmVzdHJpY3QgdGhlIHNlYXJjaCB0byBbc2VhcmNoTGVuZ3RoTGltaXRGcm9tU3RhcnRdKGh0dHBzOi8vZG9jLmxvZzEweC5jb20vcnVuL3RyYW5zZm9ybS90aW1lc3RhbXAvI3RpbWVzdGFtcHNlYXJjaGxlbmd0aGxpbWl0ZnJvbXN0YXJ0KSBjaGFyYWN0ZXJzICAgIC0gKipmcm9tRW5kKio6IHNlYXJjaCBiYWNrd2FyZCBmb3IgW3RpbWVzdGFtcE1heFBlck9iamVjdF0oaHR0cHM6Ly9kb2MubG9nMTB4LmNvbS9ydW4vdHJhbnNmb3JtL3RpbWVzdGFtcC8jdGltZXN0YW1wbWF4cGVyb2JqZWN0KSBmcm9tIHRoZSBlbmQgb2YgW3RleHRdKGh0dHBzOi8vZG9jLmxvZzEweC5jb20vYXBpL2pzLyNUZW5YQmFzZU9iamVjdCt0ZXh0KSB0byBsaW1pdCB0aGUgc2VhcmNoIHRvIFtzZWFyY2hMZW5ndGhMaW1pdEZyb21FbmRdKGh0dHBzOi8vZG9jLmxvZzEweC5jb20vcnVuL3RyYW5zZm9ybS90aW1lc3RhbXAvI3RpbWVzdGFtcHNlYXJjaGxlbmd0aGxpbWl0ZnJvbWVuZCkgY2hhcmFjdGVycyAgICAtICoqZnJvbVN0YXJ0QW5kRW5kKiogc2VhcmNoIGZvciBbdGltZXN0YW1wTWF4UGVyT2JqZWN0XShodHRwczovL2RvYy5sb2cxMHguY29tL3J1bi90cmFuc2Zvcm0vdGltZXN0YW1wLyN0aW1lc3RhbXBtYXhwZXJvYmplY3QpIGZyb20gYm90aCB0aGUgc3RhcnQgYW5kIGVuZCBvZiBbdGV4dF0oaHR0cHM6Ly9kb2MubG9nMTB4LmNvbS9hcGkvanMvI1RlblhCYXNlT2JqZWN0K3RleHQpIHRvIGxpbWl0IHRoZSBzZWFyY2ggdG8gW3NlYXJjaExlbmd0aExpbWl0RnJvbVN0YXJ0XShodHRwczovL2RvYy5sb2cxMHguY29tL3J1bi90cmFuc2Zvcm0vdGltZXN0YW1wLyN0aW1lc3RhbXBzZWFyY2hsZW5ndGhsaW1pdGZyb21zdGFydCkgYW5kICBbc2VhcmNoTGVuZ3RoTGltaXRGcm9tRW5kXShodHRwczovL2RvYy5sb2cxMHguY29tL3J1bi90cmFuc2Zvcm0vdGltZXN0YW1wLyN0aW1lc3RhbXBzZWFyY2hsZW5ndGhsaW1pdGZyb21lbmQpIHJlc3BlY3RpdmVseSAgICAtICoqbm9uZSoqOiBkbyBub3QgcGFyc2UgdGltZXN0YW1wcyAoRGVmYXVsdDogZnJvbVN0YXJ0KSIsCiAgICAgICAgICAiZGVmYXVsdCIgOiAiZnJvbVN0YXJ0IgogICAgICAgIH0sCiAgICAgICAgIm1heFBlck9iamVjdCIgOiB7CiAgICAgICAgICAidHlwZSIgOiBbCiAgICAgICAgICAgICJudW1iZXIiLAogICAgICAgICAgICAic3RyaW5nIiwKICAgICAgICAgICAgIm51bGwiCiAgICAgICAgICBdLAogICAgICAgICAgIm1hcmtkb3duRGVzY3JpcHRpb24iIDogIk1heGltdW0gbnVtYmVyIG9mIHRpbWVzdGFtcHMgcGVyIFRlblhPYmplY3RcblxuQ29udHJvbHMgdGhlIG1heGltdW0gbnVtYmVyIG9mIHRpbWVzdGFtcHMgdG8gYWRkIGludG8gYW4gVGVuWE9iamVjdCdzIFt0aW1lc3RhbXBdKGh0dHBzOi8vZG9jLmxvZzEweC5jb20vYXBpL2pzLyNUZW5YT2JqZWN0K3RpbWVzdGFtcCkgYXJyYXkuIFNldCB0byAwIGZvciB1bmxpbWl0ZWQuIChBY2NlcHRzIG51bWJlciBvciBzdHJpbmcgd2l0aCAkPSBwcmVmaXggZm9yIHJ1bnRpbWUgZXZhbHVhdGlvbikgKERlZmF1bHQ6IDApIiwKICAgICAgICAgICJkZWZhdWx0IiA6IDAKICAgICAgICB9LAogICAgICAgICJzZWFyY2hMZW5ndGhMaW1pdEZyb21TdGFydCIgOiB7CiAgICAgICAgICAidHlwZSIgOiBbCiAgICAgICAgICAgICJudW1iZXIiLAogICAgICAgICAgICAic3RyaW5nIiwKICAgICAgICAgICAgIm51bGwiCiAgICAgICAgICBdLAogICAgICAgICAgIm1hcmtkb3duRGVzY3JpcHRpb24iIDogIk1heGltdW0gbnVtYmVyIG9mIGNoYXJhY3RlcnMgdG8gc2NhbiBmb3IgdGltZXN0YW1wcyBmcm9tIGV2ZW50IHN0YXJ0XG5cbkxpbWl0cyB0aGUgbnVtYmVyIG9mIGNoYXJhY3RlcnMgdG8gc2VhcmNoIGZvciB0aW1lc3RhbXBzIGZyb20gdGhlIGJlZ2lubmluZyBvZiB0aGUgb2JqZWN0J3MgW3RleHRdKGh0dHBzOi8vZG9jLmxvZzEweC5jb20vYXBpL2pzLyNUZW5YQmFzZU9iamVjdCt0ZXh0KSAgZmllbGQuIFNldCAwIGZvciB1bmxpbWl0ZWQuIChBY2NlcHRzIG51bWJlciBvciBzdHJpbmcgd2l0aCAkPSBwcmVmaXggZm9yIHJ1bnRpbWUgZXZhbHVhdGlvbikgKERlZmF1bHQ6IDApIiwKICAgICAgICAgICJkZWZhdWx0IiA6IDAKICAgICAgICB9LAogICAgICAgICJzZWFyY2hMZW5ndGhMaW1pdEZyb21FbmQiIDogewogICAgICAgICAgInR5cGUiIDogWwogICAgICAgICAgICAibnVtYmVyIiwKICAgICAgICAgICAgInN0cmluZyIsCiAgICAgICAgICAgICJudWxsIgogICAgICAgICAgXSwKICAgICAgICAgICJtYXJrZG93bkRlc2NyaXB0aW9uIiA6ICJNYXggbnVtYmVyIG9mIGNoYXJhY3RlcnMgdG8gc2NhbiBmb3IgdGltZXN0YW1wcyBmcm9tIGV2ZW50IGVuZFxuXG5MaW1pdHMgdGhlIG51bWJlciBvZiBjaGFyYWN0ZXJzIHRvIHNlYXJjaCBmb3IgdGltZXN0YW1wcyBmcm9tIHRoZSBlbmQgb2YgdGhlIG9iamVjdCdzIFt0ZXh0XShodHRwczovL2RvYy5sb2cxMHguY29tL2FwaS9qcy8jVGVuWEJhc2VPYmplY3QrdGV4dCkgZmllbGQuIFNldCAwIGZvciB1bmxpbWl0ZWQuIChBY2NlcHRzIG51bWJlciBvciBzdHJpbmcgd2l0aCAkPSBwcmVmaXggZm9yIHJ1bnRpbWUgZXZhbHVhdGlvbikgKERlZmF1bHQ6IDApIiwKICAgICAgICAgICJkZWZhdWx0IiA6IDAKICAgICAgICB9LAogICAgICAgICJ6b25lIiA6IHsKICAgICAgICAgICJ0eXBlIiA6IFsKICAgICAgICAgICAgInN0cmluZyIsCiAgICAgICAgICAgICJudWxsIgogICAgICAgICAgXSwKICAgICAgICAgICJtYXJrZG93bkRlc2NyaXB0aW9uIiA6ICJUaW1lem9uZSB0byB1c2Ugd2hlbiBmb3JtYXR0aW5nIHRpbWVzdGFtcCBVbml4IGVwb2NoIHZhbHVlc1xuXG5Db250cm9scyB0aGUgdGltZXpvbmUgdXNlZCB3aGVuIGZvcm1hdHRpbmcgdGltZXN0YW1wIGVwb2NoIHN0cmluZyB2YWx1ZXMuIFRoZSBbWm9uZUlkLm9mXShodHRwczovL2RvY3Mub3JhY2xlLmNvbS9qYXZhc2UvOC9kb2NzL2FwaS9qYXZhL3RpbWUvWm9uZUlkLmh0bWwjb2YtamF2YS5sYW5nLlN0cmluZy0pICBvYnRhaW5zIHRoZSB0aW1lem9uZSBmcm9tIHRoZSAnem9uZScgdmFsdWUuIChEZWZhdWx0OiBbaG9zdCBPUyB0aW1lem9uZV0oaHR0cHM6Ly9kb2NzLm9yYWNsZS5jb20vamF2YXNlLzgvZG9jcy9hcGkvamF2YS90aW1lL1pvbmVJZC5odG1sI3N5c3RlbURlZmF1bHQtLSkpIiwKICAgICAgICAgICJkZWZhdWx0IiA6ICJbaG9zdCBPUyB0aW1lem9uZV0oaHR0cHM6Ly9kb2NzLm9yYWNsZS5jb20vamF2YXNlLzgvZG9jcy9hcGkvamF2YS90aW1lL1pvbmVJZC5odG1sI3N5c3RlbURlZmF1bHQtLSkiCiAgICAgICAgfSwKICAgICAgICAibGl0ZXJhbHMiIDogewogICAgICAgICAgInR5cGUiIDogWwogICAgICAgICAgICAiYXJyYXkiLAogICAgICAgICAgICAic3RyaW5nIiwKICAgICAgICAgICAgIm51bGwiCiAgICAgICAgICBdLAogICAgICAgICAgIm1hcmtkb3duRGVzY3JpcHRpb24iIDogIlRpbWVzdGFtcCBsaXRlcmFsc1xuXG5BbiBhcnJheSBvZiBzdHJpbmdzIGxpdGVyYWwgdmFsdWVzIHRvIHRyZWF0IGFzIHZhbGlkIHBhcnRzIG9mIHRpbWVzdGFtcCAoZS5nLiwgJ1onLCAnVCcsICdHTVQnKS4gKERlZmF1bHQ6IFtcIlRcIixcIlpcIl0pIiwKICAgICAgICAgICJpdGVtcyIgOiB7CiAgICAgICAgICAgICJ0eXBlIiA6ICJzdHJpbmciCiAgICAgICAgICB9LAogICAgICAgICAgImRlZmF1bHQiIDogWwogICAgICAgICAgICAiVCIsCiAgICAgICAgICAgICJaIgogICAgICAgICAgXQogICAgICAgIH0KICAgICAgfQogICAgfQogIH0sCiAgImFkZGl0aW9uYWxQcm9wZXJ0aWVzIiA6IGZhbHNlCn0=</template>

```yaml
# 🔟❎ 'run' timestamp parser configuration

# Identify unix/alphanumeric timestamp structures within TenXTemplates.
# https://doc.log10x.com/run/transform/timestamp/

# Set the 10x pipeline to 'run'
tenx: run

# ============================= Timestamp Options =============================

timestamp:
 
  # 'maxPerObject' controls the max number of timestamps to add into an TenXObject's
  # 'timestamp' array. Set to 0 for unlimited.
  maxPerObject: 0

  # 'searchDirection' controls the direction(s) from with timestamps are searched for
  #  within the object's 'text' field. Possible values: 

  #  - fromStart: search for 'maxPerObject' from the start of 'text',  
  #    limiting search to 'searchLengthLimitFromStart' characters  

  #  - fromEnd: search backward for 'maxPerObject' from the end of 'text',
  #    limiting search to 'searchLengthLimitFromEnd' characters  

  #  - fromStartAndEnd: search for 'maxPerObject' from both the start and end of 'text'
  #    limiting search to 'searchLengthLimitFromStart' and 'searchLengthLimitFromEnd' respectively  

  #  - none: do not parse timestamps

  searchDirection: fromStartAndEnd

  # 'searchLengthLimitFromStart' limits the number of characters to search for
  #  timestamps from the beginning of the object's 'text' field. 0 for unlimited
  searchLengthLimitFromStart: 0

  # 'searchLengthLimitFromStart' limits the number of characters to search for
  #  timestamps from the end of the object's 'text' field. 0 for unlimited
  searchLengthLimitFromEnd: 0

  # 'zone' controls the timezone for formatting timestamp epoch
  #  values to string. The 'java.time.ZoneId.of(String zoneId)' 
  #  is used to obtain the timezone from the 'zone' value.
  #  If set to null, the host OS timezone is used. 
  zone: null

  # 'literals' contains an array of strings to treat as a part 
  #  of any timestamp candidate found when structuring an TenXObject.
  literals:
    - T
    - Z
    - I # Go INFO
    - E # Go ERROR
    - W # Go WARN
  
  # 'patterns' specifies an array of date-time formats to attempt when parsing timestamps from input events.
  #  Timestamp formats that appear frequently within an input stream can be 'bumped' higher within the list below.

  patterns:
  # Most common formats
  - "'I'MMdd HH:mm:ss.S"                       # Used in Kubernetes kube-apiserver logs with INFO prefix, 1-digit microsecond precision.
  - "'I'MMdd HH:mm:ss.SS"                      # Used in Kubernetes kube-apiserver logs with INFO prefix, 2-digit microsecond precision.
  - "'I'MMdd HH:mm:ss.SSS"                     # Used in Kubernetes kube-apiserver logs with INFO prefix, 3-digit microsecond precision.
  - "'I'MMdd HH:mm:ss.SSSS"                    # Used in Kubernetes kube-apiserver logs with INFO prefix, 4-digit microsecond precision.
  - "'I'MMdd HH:mm:ss.SSSSS"                   # Used in Kubernetes kube-apiserver logs with INFO prefix, 5-digit microsecond precision.
  - "'I'MMdd HH:mm:ss.SSSSSS"                  # Used in Kubernetes kube-apiserver logs with INFO prefix, 6-digit microsecond precision.
  - "'W'MMdd HH:mm:ss.S"                       # Used in Kubernetes kube-apiserver logs with WARNING prefix, 1-digit microsecond precision.
  - "'W'MMdd HH:mm:ss.SS"                      # Used in Kubernetes kube-apiserver logs with WARNING prefix, 2-digit microsecond precision.
  - "'W'MMdd HH:mm:ss.SSS"                     # Used in Kubernetes kube-apiserver logs with WARNING prefix, 3-digit microsecond precision.
  - "'W'MMdd HH:mm:ss.SSSS"                    # Used in Kubernetes kube-apiserver logs with WARNING prefix, 4-digit microsecond precision.
  - "'W'MMdd HH:mm:ss.SSSSS"                   # Used in Kubernetes kube-apiserver logs with WARNING prefix, 5-digit microsecond precision.
  - "'W'MMdd HH:mm:ss.SSSSSS"                  # Used in Kubernetes kube-apiserver logs with WARNING prefix, 6-digit microsecond precision.
  - "'E'MMdd HH:mm:ss.S"                       # Used in Kubernetes kube-apiserver logs with ERROR prefix, 1-digit microsecond precision.
  - "'E'MMdd HH:mm:ss.SS"                      # Used in Kubernetes kube-apiserver logs with ERROR prefix, 2-digit microsecond precision.
  - "'E'MMdd HH:mm:ss.SSS"                     # Used in Kubernetes kube-apiserver logs with ERROR prefix, 3-digit microsecond precision.
  - "'E'MMdd HH:mm:ss.SSSS"                    # Used in Kubernetes kube-apiserver logs with ERROR prefix, 4-digit microsecond precision.
  - "'E'MMdd HH:mm:ss.SSSSS"                   # Used in Kubernetes kube-apiserver logs with ERROR prefix, 5-digit microsecond precision.
  - "'E'MMdd HH:mm:ss.SSSSSS"                  # Used in Kubernetes kube-apiserver logs with ERROR prefix, 6-digit microsecond precision.
  - "'F'MMdd HH:mm:ss.S"                       # Used in Kubernetes kube-apiserver logs with FATAL prefix, 1-digit microsecond precision.
  - "'F'MMdd HH:mm:ss.SS"                      # Used in Kubernetes kube-apiserver logs with FATAL prefix, 2-digit microsecond precision.
  - "'F'MMdd HH:mm:ss.SSS"                     # Used in Kubernetes kube-apiserver logs with FATAL prefix, 3-digit microsecond precision.
  - "'F'MMdd HH:mm:ss.SSSS"                    # Used in Kubernetes kube-apiserver logs with FATAL prefix, 4-digit microsecond precision.
  - "'F'MMdd HH:mm:ss.SSSSS"                   # Used in Kubernetes kube-apiserver logs with FATAL prefix, 5-digit microsecond precision.
  - "'F'MMdd HH:mm:ss.SSSSSS"                  # Used in Kubernetes kube-apiserver logs with FATAL prefix, 6-digit microsecond precision.
  - "yyyy-MM-dd HH:mm:ss.SSSSSSZ"              # Used in macOS unified logs (log show), with microsecond precision and timezone offset (e.g., -0400).
  - "yyyy-MM-dd HH:mm:ss"                      # Widely used in Java applications, databases (e.g., MySQL, PostgreSQL), and application servers (e.g., Tomcat, JBoss).
  - "yyyy-MM-dd'T'HH:mm:ss.SSSZ"               # Common in web services, APIs, Java (with DateTimeFormatter.ISO_OFFSET_DATE_TIME), Python (with datetime.isoformat()), and systems requiring precise timestamps with timezone information.
  - "MMM dd HH:mm:ss"                          # Frequently seen in syslog, Unix-based systems, network devices (e.g., Cisco routers), and web servers (e.g., Apache, Nginx).
  - "MMM  d HH:mm:ss"                          # Classic syslog (RFC 3164) on days 1-9: the day is space-padded, e.g. "Jan  3 17:38:36".
  - "MMM d HH:mm:ss"                           # Same date without the padding (strftime %b %-d), e.g. "Nov 9 12:01:01" in Thunderbird-style system logs.
  - "dd/MMM/yyyy:HH:mm:ss Z"                   # Standard syslog format, used in firewalls (e.g., Cisco ASA, Palo Alto), network monitoring tools, and Unix-based systems.
  - "yyyy-MM-dd HH:mm:ss,SSS"                  # Common in Java logging frameworks like Log4j and Logback.
  - "yyyy-MM-dd'T'HH:mm:ss,SSS"                # Common in Java logging with ISO 8601 date-time, comma-separated milliseconds.
  - "MM/dd/yyyy HH:mm:ss"                      # Used in Windows event logs, .NET applications, and U.S.-based systems.
  - "EEE MMM dd HH:mm:ss yyyy"                 # Human-readable format used in various logs, including some web servers and application logs.
  - "EEE MMM dd HH:mm:ss zzz yyyy"             # java.util.Date.toString() and the Unix date command, e.g. "Thu Jan 15 10:00:01 UTC 2026". Common in Java application logs and shell-script output.
  - "yyyy-MM-dd'T'HH:mm:ss"                    # Simplified ISO 8601 format, used in many modern applications and frameworks.
  - "HH:mm:ss"                                 # Time-only format, used when the date is implied or provided separately, common in embedded systems and some programming languages.
  - "yyyyMMdd HH:mm:ss"                        # Compact format used in some legacy systems and batch processing logs.
  - "yyyyMMdd-H:m:s:SSS"                       # Compact date, hyphen, unpadded time, colon before the milliseconds, e.g. "20171223-22:15:29:606" or "20171224-0:0:0:234". Android HealthApp and similar mobile logs.
  - "yyyyMMdd-H:m:s:SS"                        # Same with two fraction digits, e.g. "20171223-22:30:24:28".
  - "yyyyMMdd-H:m:s:S"                         # Same with one fraction digit.
  - "MM.dd HH:mm:ss"                           # Month.day without a year, e.g. "10.30 16:49:06". Proxifier and other Windows utility logs.
  - "MMM dd, yyyy h:mm:ss a"                   # Human-readable format with 12-hour clock, used in application logs and some U.S.-based systems.
  - "MMM dd, yyyy hh:mm:ss a"                  # Human-readable format with 12-hour clock (padded hour), used in application logs and some U.S.-based systems.
  # Common formats with slight variations
  - "yyyy-MM-dd HH:mm:ss.SSS"                  # Extended precision format used in Java applications and databases requiring millisecond accuracy.
  - "dd-MMM-yyyy HH:mm:ss.SSS"                 # Common in Java logging frameworks (e.g., Log4j, SLF4J) and application logs requiring human-readable dates with millisecond precision.
  - "yyyy-MM-dd'T'HH:mm:ss.S'Z'"               # Microsecond precision ISO 8601 format, 1-digit precision.
  - "yyyy-MM-dd'T'HH:mm:ss.SS'Z'"              # Microsecond precision ISO 8601 format, 2-digit precision.
  - "yyyy-MM-dd'T'HH:mm:ss.SSS'Z'"             # Microsecond precision ISO 8601 format, 3-digit precision.
  - "yyyy-MM-dd'T'HH:mm:ss.SSSS'Z'"            # Microsecond precision ISO 8601 format, 4-digit precision.
  - "yyyy-MM-dd'T'HH:mm:ss.SSSSS'Z'"           # Microsecond precision ISO 8601 format, 5-digit precision.
  - "yyyy-MM-dd'T'HH:mm:ss.SSSSSS'Z'"          # Microsecond precision ISO 8601 format, 6-digit precision.
  - "yyyy-MM-dd'T'HH:mm:ss.S'Z'"               # Nanosecond precision ISO 8601 format, 1-digit precision.
  - "yyyy-MM-dd'T'HH:mm:ss.SS'Z'"              # Nanosecond precision ISO 8601 format, 2-digit precision.
  - "yyyy-MM-dd'T'HH:mm:ss.SSS'Z'"             # Nanosecond precision ISO 8601 format, 3-digit precision.
  - "yyyy-MM-dd'T'HH:mm:ss.SSSS'Z'"            # Nanosecond precision ISO 8601 format, 4-digit precision.
  - "yyyy-MM-dd'T'HH:mm:ss.SSSSS'Z'"           # Nanosecond precision ISO 8601 format, 5-digit precision.
  - "yyyy-MM-dd'T'HH:mm:ss.SSSSSS'Z'"          # Nanosecond precision ISO 8601 format, 6-digit precision.
  - "yyyy-MM-dd'T'HH:mm:ss.SSSSSSS'Z'"         # Nanosecond precision ISO 8601 format, 7-digit precision.
  - "yyyy-MM-dd'T'HH:mm:ss.SSSSSSSS'Z'"        # Nanosecond precision ISO 8601 format, 8-digit precision.
  - "yyyy-MM-dd'T'HH:mm:ss.SSSSSSSSS'Z'"       # Nanosecond precision ISO 8601 format, 9-digit precision.
  - "yyyy-MM-dd'T'HH:mm:ssZZZZZ"               # ISO 8601 with timezone offset, used in systems where timezone information is critical.
  - "yyyy-MM-dd HH:mm:ss.SSSZZZZZ"             # Similar to above but without the 'T' separator, used in database logs and application servers.
  - "yyyy-MM-dd HH:mm:ss.S"                    # Microsecond precision format, 1-digit precision.
  - "yyyy-MM-dd HH:mm:ss.SS"                   # Microsecond precision format, 2-digit precision.
  - "yyyy-MM-dd HH:mm:ss.SSS"                  # Microsecond precision format, 3-digit precision.
  - "yyyy-MM-dd HH:mm:ss.SSSS"                 # Microsecond precision format, 4-digit precision.
  - "yyyy-MM-dd HH:mm:ss.SSSSS"                # Microsecond precision format, 5-digit precision.
  - "yyyy-MM-dd HH:mm:ss.SSSSSS"               # Microsecond precision format, 6-digit precision.
  - "MM/dd/yyyy*HH:mm:ss*SSS"                  # Used in some U.S.-based systems, particularly in legacy applications or specific logging frameworks.
  - "M/d/yyyy h:mm:ss a:SSS"                   # Common in systems using 12-hour time format, such as some Windows applications or older logging systems.
  - "M/d/yyyy hh:mm:ss a:SSS"                  # Common in systems using 12-hour time format with milliseconds and padded hour, such as some Windows applications.
  - "M/dd/yyyy hh:mm:ss a"                     # Similar to above, used in systems where millisecond precision is not needed.
  - "yyyy-MM-dd'T'HH:mm:ss.SSSX"               # ISO 8601 with basic timezone offset format, used in systems that require standardized timestamps.
  - "yyyy-MM-dd'T'HH:mm:ss.SSSz"               # ISO 8601 with timezone name, used in applications that need to display timezone information.
  - "yyyy-MM-dd'T'HH:mm:ss'Z'"                 # ISO 8601 format assuming UTC, used in systems where all times are in UTC.
  - "yy/MM/dd HH:mm:ss"                        # Two-digit year format, used in compact logs or older systems.
  - "MMM dd HH:mm:ss ZZZZ"                     # Used in some Unix-based systems and web servers, includes timezone offset.
  - "HH:mm:ss,SSS"                             # Time-only format with milliseconds, used in performance logs or systems where date is provided separately.
  - "yyyy-MM-dd*HH:mm:ss"                      # Used in some application logs where the separator is a space or asterisk.
  - "yyyy MMM dd HH:mm:ss.SSS"                 # Human-readable format with milliseconds, used in some application logs.
  - "dd/MMM/yyyy HH:mm:ss"                     # Used in European systems and some web applications.
  - "yyyy-MM-dd'T'HH:mm:ss.SSS''Z''"           # ISO 8601 with milliseconds and literal 'Z', used in systems where 'Z' is explicitly included.
  - "MMM dd yyyy HH:mm:ss"                     # Human-readable format, used in various logs.
  - "yyyy-MM-dd HH:mm:ss ZZZZ"                 # Format with timezone offset, used in systems requiring timezone information.
  - "yyyy-MM-dd HH:mm:ssZZZZZ"                 # Similar to above, used in application logs.
  - "dd MMM yyyy HH:mm:ss"                     # European format, used in some web applications and databases.
  - "MMdd_HH:mm:ss"                            # Compact format without separators, used in file names or space-constrained logs.
  - "yyyy-MM-dd HH:mm:ss,SSSZZZZZ"             # Java logging format with timezone offset.
  - "yyyyMMdd HH:mm:ss.SSS"                    # Compact format with milliseconds, used in some legacy systems.
  - "yyyy/MM/dd HH:mm:ss"                      # Format used in some Asian systems, particularly in Japan.
  - "dd/MM/yyyy HH:mm:ss"                      # Common in European systems, including some web applications and databases.
  - "MM-dd-yyyy HH:mm:ss"                      # U.S. format variant, used in some older systems.
  - "yyyyMMddHHmmss"                           # Compact format for file names or database timestamps, used in systems where space is a concern.
  - "EEE, dd MMM yyyy HH:mm:ss zzz"            # RFC 1123 format, used in HTTP headers, web servers, and email systems.
```

## :material-menu: Options

Specify the options below to [configure](/config "configure") the Timestamp parser:

|Name|Description|
|---|---|
|[timestampPatterns](#timestamppatterns "date-time formats for parsing timestamps from input events")|Date-time formats for parsing timestamps from input events|
|[timestampSearchDirection](#timestampsearchdirection "controls the text direction(s) in which to search for timestamps")|Controls the text direction(s) in which to search for timestamps|
|[timestampMaxPerObject](#timestampmaxperobject "maximum number of timestamps per TenXObject")|Maximum number of timestamps per TenXObject|
|[timestampSearchLengthLimitFromStart](#timestampsearchlengthlimitfromstart "maximum number of characters to scan for timestamps from event start")|Maximum number of characters to scan for timestamps from event start|
|[timestampSearchLengthLimitFromEnd](#timestampsearchlengthlimitfromend "max number of characters to scan for timestamps from event end")|Max number of characters to scan for timestamps from event end|
|[timestampZone](#timestampzone "timezone to use when formatting timestamp Unix epoch values")|Timezone to use when formatting timestamp Unix epoch values|
|[timestampLiterals](#timestampliterals "timestamp literals")|Timestamp literals|

### :material-menu-right-outline:**`timestampPatterns`**

Date-time formats for parsing timestamps from input events.

|Type|Default|
|---|---|
|List|\[\[config.yaml\](https://github.com/log-10x/config/tree/main/pipelines/run/config/transform/timestamp/config.yaml)\]|

Lists date-time formats in [Java specification](https://docs.oracle.com/javase/8/docs/api/java/time/format/DateTimeFormatter.html){target="\_blank"}  
for parsing timestamp epoch values from input events.


### :material-menu-right-outline:**`timestampSearchDirection`**

Controls the text direction(s) in which to search for timestamps.

|Type|Default|
|---|---|
|String|fromStart|

Controls the direction(s) to search for timestamps within an TenXObject's [text](https://doc.log10x.com/api/js/#TenXBaseObject+text "The content of the event from which this instance was structured.") field.
Possible values:

- **fromStart**: search for [timestampMaxPerObject](https://doc.log10x.com/run/transform/timestamp/#timestampmaxperobject "maximum number of timestamps per TenXObject") from the start of \[text\]https://doc.log10x.com/api/js/#TenXBaseObject+text)
  to restrict the search to [searchLengthLimitFromStart](https://doc.log10x.com/run/transform/timestamp/#timestampsearchlengthlimitfromstart "maximum number of characters to scan for timestamps from event start") characters

- **fromEnd**: search backward for [timestampMaxPerObject](https://doc.log10x.com/run/transform/timestamp/#timestampmaxperobject "maximum number of timestamps per TenXObject") from the end of [text](https://doc.log10x.com/api/js/#TenXBaseObject+text "The content of the event from which this instance was structured.")
  to limit the search to [searchLengthLimitFromEnd](https://doc.log10x.com/run/transform/timestamp/#timestampsearchlengthlimitfromend "max number of characters to scan for timestamps from event end") characters

- **fromStartAndEnd** search for [timestampMaxPerObject](https://doc.log10x.com/run/transform/timestamp/#timestampmaxperobject "maximum number of timestamps per TenXObject") from both the start and end of [text](https://doc.log10x.com/api/js/#TenXBaseObject+text "The content of the event from which this instance was structured.")
  to limit the search to [searchLengthLimitFromStart](https://doc.log10x.com/run/transform/timestamp/#timestampsearchlengthlimitfromstart "maximum number of characters to scan for timestamps from event start") and  [searchLengthLimitFromEnd](https://doc.log10x.com/run/transform/timestamp/#timestampsearchlengthlimitfromend "max number of characters to scan for timestamps from event end")
  respectively

- **none**: do not parse timestamps.


### :material-menu-right-outline:**`timestampMaxPerObject`**

Maximum number of timestamps per TenXObject.

|Type|Default|
|---|---|
|Number|0|

Controls the maximum number of timestamps to add into an TenXObject's
[timestamp](https://doc.log10x.com/api/js/#TenXObject+timestamp "An array of UNIX epoch values of timestamps parsed from the object's text.") array. Set to 0 for unlimited.


### :material-menu-right-outline:**`timestampSearchLengthLimitFromStart`**

Maximum number of characters to scan for timestamps from event start.

|Type|Default|
|---|---|
|Number|0|

Limits the number of characters to search for
timestamps from the beginning of the object's [text](https://doc.log10x.com/api/js/#TenXBaseObject+text "The content of the event from which this instance was structured.")  field. Set 0 for unlimited.


### :material-menu-right-outline:**`timestampSearchLengthLimitFromEnd`**

Max number of characters to scan for timestamps from event end.

|Type|Default|
|---|---|
|Number|0|

Limits the number of characters to search for
timestamps from the end of the object's [text](https://doc.log10x.com/api/js/#TenXBaseObject+text "The content of the event from which this instance was structured.") field. Set 0 for unlimited.


### :material-menu-right-outline:**`timestampZone`**

Timezone to use when formatting timestamp Unix epoch values.

|Type|Default|
|---|---|
|String|[host OS timezone](https://docs.oracle.com/javase/8/docs/api/java/time/ZoneId.html#systemDefault-- "host OS timezone"){target="\_blank"}|

Controls the timezone used when formatting timestamp epoch
string values. The [ZoneId.of](https://docs.oracle.com/javase/8/docs/api/java/time/ZoneId.html#of-java.lang.String-){target="\_blank"}
obtains the timezone from the 'zone' value.


### :material-menu-right-outline:**`timestampLiterals`**

Timestamp literals.

|Type|Default|
|---|---|
|List|\[T, Z\]|

An array of strings literal values to treat as valid parts of timestamp (e.g., 'Z', 'T', 'GMT').


<br/>:material-github: This unit is defined in [timestamp/unit.yaml](https://github.com/log-10x/modules/tree/main/pipelines/run/units/transform/timestamp/unit.yaml "timestamp/unit.yaml"){target="\_blank"}.

