# European Dot Timestamp (DMY 24h)

Key: `datetime.timestamp.dot_dmy_24h`

Dot-separated Day.Month.Year with space and 24-hour time. Standard in German, Central European, and Russian systems. SAP and German banking exports frequently use this format.

Page: <https://meridian.online/docs/finetype/types/datetime/timestamp/dot_dmy_24h>

Format: `%d.%m.%Y %H:%M:%S`

Samples: `15.01.2024 14:30:00`, `31.12.2023 23:59:59`, `01.06.2024 08:15:30`

## Use it

Shell

```shell
finetype infer -i '15.01.2024 14:30:00' --mode column
# → datetime.timestamp.dot_dmy_24h
```

DuckDB

```sql
SELECT ft_infer('15.01.2024 14:30:00');
-- → 'datetime.timestamp.dot_dmy_24h'
```

Cast template: {col} is your column

```sql
strptime({col}, '%d.%m.%Y %H:%M:%S')
-- Format: %d.%m.%Y %H:%M:%S
```

## Background

### Origin

The traditional all-numeric form of writing dates in German is the day.month.year order, using a dot on the line as the separator.[[1]](https://en.wikipedia.org/wiki/Date_and_time_notation_in_Europe) The German dot separator matches the convention of pronouncing the day and the month as ordinal numbers, because ordinal numbers are written in German followed by a dot.[[1]](https://en.wikipedia.org/wiki/Date_and_time_notation_in_Europe) In 1995 the DIN 5008 standard replaced the traditional German date notation with the ISO 8601 notation, such as 1991-12-31.[[1]](https://en.wikipedia.org/wiki/Date_and_time_notation_in_Europe) The traditional day.month.year format was re-introduced to DIN 5008 in 2001 as an alternative to the standard yyyy-mm-dd format.[[1]](https://en.wikipedia.org/wiki/Date_and_time_notation_in_Europe)

In written German, time is expressed almost exclusively in the 24-hour notation.[[1]](https://en.wikipedia.org/wiki/Date_and_time_notation_in_Europe) DIN 1355 and DIN 5008 had laid down the dot as the standard separator between hours, minutes and seconds in Germany.[[1]](https://en.wikipedia.org/wiki/Date_and_time_notation_in_Europe) In 1995 the German standard time separator was changed to the colon in the interest of compatibility with ISO 8601.[[1]](https://en.wikipedia.org/wiki/Date_and_time_notation_in_Europe)

In most post-Soviet states, the DD.MM.YYYY date format is used with dots as separators and with leading zeros.[[1]](https://en.wikipedia.org/wiki/Date_and_time_notation_in_Europe) In Russia, the 24-hour notation is used in writing, with a colon as the standardised and recommended separator.[[2]](https://en.wikipedia.org/wiki/Date_and_time_notation_in_Russia)

### Use

DuckDB's strptime function throws an error when a string cannot be parsed according to its format.[[3]](https://duckdb.org/docs/current/sql/functions/dateformat) DuckDB's read\_csv function accepts a timestampformat option, which is used for converting timestamps while the file is read.[[3]](https://duckdb.org/docs/current/sql/functions/dateformat) The pandas documentation warns that dayfirst=True is not strict, but will prefer to parse with day first.[[4]](https://pandas.pydata.org/docs/reference/api/pandas.to_datetime.html) When the day is 12 or under, the digits alone cannot tell this format from a month-first one, so treat the dots as a clue and confirm the source's locale rather than assuming it. (Meridian's view) Validate every row rather than a sample, because a column that is mostly this shape can still hold values written without seconds or without leading zeros. (Meridian's view)

## Sources

1. [Date and time notation in Europe](https://en.wikipedia.org/wiki/Date_and_time_notation_in_Europe) — secondary source
2. [Date and time notation in Russia](https://en.wikipedia.org/wiki/Date_and_time_notation_in_Russia) — secondary source
3. [Date Format Functions – DuckDB](https://duckdb.org/docs/current/sql/functions/dateformat) — documentation
4. [pandas.to\_datetime — pandas 3.0.6 documentation](https://pandas.pydata.org/docs/reference/api/pandas.to_datetime.html) — documentation

## How it's detected

Common in DACH region (Germany, Austria, Switzerland) and Eastern European ERP exports.
