Fix Mixed Date Formats in a CSV
Is 03/04/2026 the third of April or March the fourth? Most tools pick one silently. This example shows a cleanup that only converts what it can settle, and tells you about the rest.
What Usually Goes Wrong
• Month-first and day-first dates from different teams
• Two-digit years
• Dates written out in words
• A date that does not exist
• One column where the order can be worked out, and one where it cannot
The Sample File, Before
7 rows of fictional data with the problems above. Every person and company is invented.
Open This File in the Workspace Download the CSV
| Order ID | Customer | Order Date | Ship Date |
|---|---|---|---|
| SO-5001 | Arden Example Co | 3/14/2026 | 04/03/2026 |
| SO-5002 | Belmar Example Ltd | 3/19/2026 | 05/04/2026 |
| SO-5003 | Castell Example Inc | 04/02/2026 | 06/05/2026 |
| SO-5004 | Dunmore Example LLC | March 28 2026 | 02/04/2026 |
| SO-5005 | Everly Example Group | 4/5/26 | 07/05/2026 |
| SO-5006 | Fairlight Example Co | 2/30/2026 | 08/06/2026 |
| SO-5007 | Garnet Example SA | 2026-04-09 | 09/07/2026 |
How to Clean It
1. Keep an untouched copy of the file.
2. Run it with Standardize dates switched on and no date order chosen.
3. Read the review list. It says how each date column was read, and why.
4. For the column that could not be settled, find out where the data came from, then choose month-first or day-first for that column in the workspace's Review step.
5. Check the two-digit year and the impossible date by hand.
Prefer the command line or an AI agent? The same result comes from smartdata-clean clean date-formats.csv --dates. See tools for agents.
The Result
7 rows in, 0 removed, 7 out. In Order Date, 3/14 and 3/19 can only be month-first, so the whole column is read that way and the one date that was unclear on its own is listed for you to check. In Ship Date every value could be read either way, so nothing is converted until you say which order applies. The two-digit year and February 30th are left alone and listed.
| Order ID | Customer | Order Date | Ship Date |
|---|---|---|---|
| SO-5001 | Arden Example Co | 2026-03-14 | 04/03/2026 |
| SO-5002 | Belmar Example Ltd | 2026-03-19 | 05/04/2026 |
| SO-5003 | Castell Example Inc | 2026-04-02 | 06/05/2026 |
| SO-5004 | Dunmore Example LLC | 2026-03-28 | 02/04/2026 |
| SO-5005 | Everly Example Group | 4/5/26 | 07/05/2026 |
| SO-5006 | Fairlight Example Co | 2/30/2026 | 08/06/2026 |
| SO-5007 | Garnet Example SA | 2026-04-09 | 09/07/2026 |
What the tool left for you
The tool listed these 4 items for a person to check:
• Dates in "Ship Date" could be read as MM/DD or DD/MM, so they were left unchanged. Choose a date order (command line: --date-order mdy or dmy) and run again.
• Dates in "Order Date" were read as month first (MM/DD) because other dates in that column can only be read that way. 1 date(s) that could be read either way on their own were converted on that basis (rows 4). Check them, or set the date order yourself.
• Dates with a two-digit year were left unchanged: 1 (rows 6). Turn on "Expand 2-digit years" (command line: --expand-years) to convert them.
• Dates not recognized or not real calendar dates, left unchanged: 1 (rows 7)
Checked, not just claimed
The original file, the cleaned file and the change log were run through the separate verifier. Result: PASS.
✓ Removed rows with a valid, verified reason: 0 of 0
✓ Rows: 7 in, 0 removed with a logged reason, 7 out
✓ Cells compared: 28; changed: 4; every change matched to the log: yes
✓ Log entries: 4; not matching the files: 0
The verifier confirms that the change log explains every difference between the two files. It does not judge whether each cleaning choice suits your situation; that part is yours.
The cleaning report
Where a Tool Stops and a Person Starts
When a column mixes both orders, someone has to go row by row with context: where the record came from, or what the neighbouring dates are. That is Complex Cleanup work.
See Service Levels From $19 How We Check Our Work
The command-line tool takes --date-order mdy or dmy when you already know the answer.