DMY Date (slash-separated)
datetime.date.dmy_slashDay/Month/Year with slash separators. Standard format across Europe, Australia, and much of Asia. Ambiguous with MDY format for days 1-12.
Worked samples
DuckDB 1.5.5 · finetype 0.6.64
| Value | As DATE |
|---|---|
| 15/01/2024 | 2024-01-15 |
| 31/12/2019 | 2019-12-31 |
- %d
- day of month, two digits
- %m
- month, two digits
- %Y
- four-digit year
Written by
CLDR 46 via finetype 0.6.64
Each locale below writes this format with its CLDR date pattern at the styles named beside it.
am short · asa short · bem short · bez short · br short · cgg short · dav short · ebu short · en (001, 150, AE, AG, AI, AT, BB, BM, BS, CC, CK, CM, CX, CY, DE, DG, DK, DM, ER, FI, FJ, FK, FM, GB, GD, GG, GH, GI, GM, GY, ID, IE, IL, IM, IO, JE, JM, KE, KI, KN, KY, LC, LR, LS, MG, MO, MS, MT, MU, MW, MY, NA, NF, NG, NL, NR, NU, NZ, PG, PK, PN, PW, RW, SB, SC, SD, SH, SI, SL, SS, SX, SZ, TC, TK, TO, TT, TV, TZ, UG, VC, VG, VU, WS, ZM) short · fr short · fr (BF, BI, BJ, BL, CD, CF, CG, CI, CM, DJ, DZ, GA, GF, GN, GP, GQ, HT, KM, LU, MA, MC, MF, MG, ML, MQ, MR, MU, NC, NE, PF, PM, RE, RW, SC, SN, SY, TD, TG, TN, VU, WF, YT) short · fur medium · ga short · ga (GB) short · gd short · guz short · hi (Latn) short · jmc short · kam short · kde short · kea short · kgp short · ki short · kln short · ksb short · lag short · lg short · luo short · luy short · mas short · mas (TZ) short · mer short · mgh short · ms (Arab, Arab-BN) medium · mt short · naq short · nd short · nyn short · pcm short · pt short · pt (AO, CH, CV, GQ, GW, LU, MO, MZ, PT, ST, TL) medium · rof short · rwk short · saq short · sbp short · sc short · sw short · sw (CD, KE, UG) short · teo short · teo (KE) short · tzm short · vai short · vai (Latn, Vaii) short · vun short · xog short · yrl short · yrl (CO, VE) short
Shape
^\d{2}/\d{2}/\d{4}$| Value | Length | Shape |
|---|---|---|
| 15/01/2024 | 10 | matches |
| 31/12/2019 | 10 | matches |
| 15/01/202 | 9 | rejected: one character short |
Background
Origin
In the United Kingdom, dates are traditionally and most commonly written in day–month–year order.[1] In British usage, 31 December 1999 can be written all-numerically as 31/12/99, and the year may also be written in full, as 31/12/1999.[1] In British usage, all-numeric dates are used in notes and references, but not in running prose.[1] Think of the slash-separated day-first date as a national writing convention that found its way into data, rather than a data standard in its own right. (Meridian's view)
The Australian Government Style Manual says to separate the numbers in a numeric date with an unspaced forward slash, using the format day/month/year.[2] The Australian Government Style Manual advises using numeric dates only when space is limited, such as in tables.[2]
In the Unicode CLDR locale data, the short date pattern for British English (en-GB) is dd/MM/y.[3] In the Unicode CLDR locale data, the short date pattern for French (fr) is dd/MM/y.[4]
Use
Day-first numeric dates contrast with date notation in the United States, where the month is placed first, leading to confusion in international communications.[1] In the United States, 2/11/03 is interpreted as 11 February 2003.[1] A value whose first two numbers are both 12 or less, such as 05/04/2024, reads as a valid date in either order, so one value on its own cannot tell you which order a file uses. (Meridian's view) Look across the whole column for a first number above 12, and read the publisher's documentation or ask them when none turns up. (Meridian's view)
Python's strftime and strptime directives define %d as the day of the month as a zero-padded decimal number.[5] Python's strftime and strptime directives define %m as the month as a zero-padded decimal number.[5] Python's strftime and strptime directives define %Y as the year with century as a decimal number.[5] The pandas documentation for to_datetime gives %d/%m/%Y as its example of a format to parse.[6] The pandas documentation says that with dayfirst=True, 10/11/12 is parsed as 2012-11-10.[6] The pandas documentation warns that dayfirst=True is not strict, but will prefer to parse with day first.[6] Prefer an explicit format such as %d/%m/%Y over a day-first hint, so that every value in the column is read in the same order. (Meridian's view)
The UK government's standard for dates in data says to use ISO 8601 for machine-readable dates and times in data for transferring between systems.[7] When you pass day-first dates on, convert them to the ISO 8601 form, such as 2024-01-15, so the next reader does not have to guess the order. (Meridian's view)
Where you'll meet it
The UK Trade Tariff service's monthly exchange rate file for January 2024 writes its Start date and End date columns as 01/01/2024 and 31/01/2024.[8]
Sources
- [1]Date and time notation in the United Kingdomsecondary source
- [2]Dates and time | Style Manualorganisation
- [3]ca-gregorian.json (en-GB)documentation
- [4]ca-gregorian.json (fr)documentation
- [5]datetime — Basic date and time typesdocumentation
- [6]pandas.to_datetimedocumentation
- [7]Formatting dates and times in dataorganisation
- [8]monthly_csv_2024-1.csvdataset
Detection notes
NEW in v2. Critical for non-US data. Ambiguous with mdy_slash when day <= 12 — column-mode inference resolves by checking if any value has first component > 12.
Use it
$ finetype infer -i "15/01/2024" --mode column
→ datetime.date.dmy_slash
SELECT ft_infer('15/01/2024');
-- → 'datetime.date.dmy_slash'strptime({col}, '%d/%m/%Y')::DATE
-- Format: %d/%m/%YSchema
https://meridian.online/schemas/datetime.date.dmy_slash · Frictionless type date · %d/%m/%Y
finetype taxonomy datetime.date.dmy_slash -o json-schema