ISO Datetime, second precision (no timezone)
datetime.timestamp.iso_secondssince finetype v0.6.36ISO 8601-like format with second precision and no timezone indicator (e.g. 2013-06-04T01:02:03). Common in database exports and log files. The zoneless sibling of iso_8601 (which requires a trailing Z).
Try a value
ISO Datetime, second precision (no timezone)'s rule accepts it.
Reads it as 2024-03-04 05:06:07
Worked samples
DuckDB 1.5.5 · finetype 0.6.66
| Value | As TIMESTAMP |
|---|---|
| 2013-06-04T01:02:03 | 2013-06-04 01:02:03 |
| 2024-01-15T10:30:00 | 2024-01-15 10:30:00 |
- %Y
- four-digit year
- %m
- month, two digits
- %d
- day of month, two digits
- %H
- hour, 24-hour clock
- %M
- minutes
- %S
- seconds
Shape
^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}$| Value | Length | Shape |
|---|---|---|
| 2013-06-04T01:02:03 | 19 | matches |
| 2024-01-15T10:30:00 | 19 | matches |
| 2013-06-04T01:02:0 | 18 | rejected: one character short |
Told apart
Told apart on one page: ISO 8601 vs RFC 3339 timestamps.
Background
Origin
The first edition of ISO 8601, ISO 8601:1988, was published in June 1988.[1] ISO 8601:1988 unified and replaced several older ISO standards, among them ISO 2014, ISO 2015, ISO 2711, ISO 3307 and ISO 4031.[1]
ISO 8601 joins a date and a time of day into one value with the letter T.[1] ISO 8601:2004 allowed the T to be left out by mutual agreement, but ISO 8601-1:2019 removed that provision.[1] ISO 8601 says that if no UTC relation information is given with a time representation, the time is assumed to be in local time.[1] ISO 8601 marks a time in UTC by adding a Z directly after the time, without a space.[1]
FineType defines iso_seconds as an ISO 8601-like format with second precision and no timezone indicator, such as 2013-06-04T01:02:03.[2] FineType's label file describes iso_seconds as the zoneless sibling of iso_8601, which requires a trailing Z.[2] FineType gives iso_seconds the format string %Y-%m-%dT%H:%M:%S.[2]
Use
Python's documentation calls a datetime naive when it does not contain enough information to locate itself unambiguously relative to other date and time objects.[3] Java's LocalDateTime class is a date-time without a time-zone in the ISO-8601 calendar system, such as 2007-12-03T10:15:30.[4]
The HTML Standard defines a local date and time as one expressed without a time zone.[5] The HTML Standard's normalised local date and time string separates the date from the time with a capital T.[5] The HTML Standard's normalised local date and time string writes the time as the shortest possible string for the given time.[5] Where one column mixes values with and without seconds, treat both shapes as the same field before you parse it. (Meridian's view)
RFC 3339 defines a date and time format for Internet protocols that is a profile of ISO 8601.[6] RFC 3339's date-time grammar requires a time offset, either Z or a numeric offset, after the time.[6] RFC 3339 deems the interoperability problems of unqualified local time unacceptable for the Internet, since interpreting one will fail in approximately 23/24 of the globe.[6] Before handing a zoneless column to a parser built for RFC 3339, check what it does with a missing offset. (Meridian's view)
Before parsing, find out from the source's documentation which clock the values were read from: the server's local zone, the user's, or UTC with the Z dropped. (Meridian's view)
Parse into a timestamp type without a time zone, and attach a zone only once you know it, rather than letting a tool silently assume UTC or the machine's own zone. (Meridian's view)
Sources
- [1]ISO 8601secondary source
- [2]definitions_datetime.yamlFineType
- [3]datetime — Basic date and time typesdocumentation
- [4]LocalDateTime (Java SE 21 & JDK 21)documentation
- [5]HTML Standardstandard
- [6]Date and Time on the Internet: Timestampsstandard
Detection notes
New in v0.6.36 (spec 2026-06-19-zoneless-iso-datetime-leaves). Zoneless second-precision sibling of iso_8601, mirroring iso_microseconds. Add-not- broaden: the zoned leaves keep their Z-required patterns so round-trip transforms stay correct. Distinct from epoch.unix_seconds (numeric epoch, not an ISO string).
Use it
$ finetype infer -i "2013-06-04T01:02:03" --mode column
→ datetime.timestamp.iso_seconds
SELECT ft_infer('2013-06-04T01:02:03');
-- → 'datetime.timestamp.iso_seconds'strptime({col}, '%Y-%m-%dT%H:%M:%S')
-- Format: %Y-%m-%dT%H:%M:%SSchema
https://meridian.online/schemas/datetime.timestamp.iso_seconds · Frictionless type datetime · %Y-%m-%dT%H:%M:%S
finetype taxonomy datetime.timestamp.iso_seconds -o json-schema