---
title: "Feature: #105549 - Support qualified and unqualified ISO8601 dates in DataHandler"
manual: "TYPO3 Core Changelog"
version: "main"
permalink: "https://docs.typo3.org/permalink/changelog:feature-105549-1742215066"
source: "Changelog/14.0/Feature-105549-SupportQualifiedAndUnqualifiedISO8601DatesInDataHandler.rst"
typo3-version: "14.0"
typo3-major: 14
type: "feature"
issue: 105549
forge: "https://forge.typo3.org/issues/105549"
tags: ["Database", "PHP-API", "ext:core"]
rendered: "2026-09-23T16:35:56+00:00"
---

# Feature: #105549 - Support qualified and unqualified ISO8601 dates in DataHandler {#feature-105549-1742215066}

See [forge#105549](https://forge.typo3.org/issues/105549)

## Description {#description}

The `\TYPO3\CMS\Core\DataHandling\DataHandler` API has been extended
to support both qualified and unqualified ISO 8601 date formats, correctly
handling supplied timezone offsets when provided.

-   **Qualified ISO 8601**

    Includes an explicit timezone offset (for example,
    `1999-12-11T10:09:00+01:00` or `1999-12-11T10:09:00Z`)

-   **Unqualified ISO 8601**

    Omits timezone offsets, representing `LOCALTIME` (for example,
    `1999-12-11T10:09:00`)

The `\TYPO3\CMS\Core\DataHandling\DataHandler` now accepts five
different formats:

|  | Format | Examples |
| --- | --- | --- |
| **Unqualified ISO 8601** (`LOCALTIME`) | `'Y-m-d\\TH:i:s'` | `1999-11-11T11:11:11` |
| **Qualified ISO 8601** | `'Y-m-d\\TH:i:sP'` | `1999-11-11T10:11:11Z` `1999-11-11T11:11:11+01:00` |
| **DateTime objects** | `\DateTimeInterface` | `new \DateTime('yesterday')` `new \DateTimeImmutable()` |
| **SQL-flavored dates** (*internal use*) | `'Y-m-d H:i:s'` | `1999-11-11 11:11:11` |
| **Unix timestamps** (*internal use*) | `'U'` | `942315071` |

The ISO 8601 variants and `\DateTimeInterface` objects are intended for use
in the public API. The SQL-flavored variant and Unix timestamps are primarily
intended for internal operations such as copy or import processes involving
native `DATETIME` and `INT` timestamp database fields.

**Passing datetime data via the DataHandler PHP API**

```php
$myDate = new \DateTime('yesterday');
$this->dataHandler->start([
    'tx_myextension_mytable' => [
        'NEW-1' => [
            'pid' => 2,
            // Format as LOCALTIME
            'mydatefield_1' => $myDate->format('Y-m-d\\TH:i:s'),
            // Format with timezone information
            // (offsets will be normalized to the persistence timezone format,
            // UTC for integer fields, LOCALTIME for native DATETIME fields)
            'mydatefield_2' => $myDate->format('c'),
            // Pass \DateTimeInterface objects directly
            'mydatefield_3' => $myDate,
        ],
    ],
]);
```

## Impact {#impact}

TYPO3 now provides accurate and consistent handling of ISO 8601 dates,
eliminating previous issues related to timezone interpretation and `LOCALTIME`
representation.
