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.

ℹ️ A worked example you can check. The before and after tables below were produced by the free tool on this site from a fictional sample file. Open the same file yourself and you will get the same result.

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

Fix Mixed Date Formats in a CSV sample before cleaning
Order IDCustomerOrder DateShip Date
SO-5001Arden Example Co3/14/202604/03/2026
SO-5002Belmar Example Ltd3/19/202605/04/2026
SO-5003Castell Example Inc04/02/202606/05/2026
SO-5004Dunmore Example LLCMarch 28 202602/04/2026
SO-5005Everly Example Group4/5/2607/05/2026
SO-5006Fairlight Example Co2/30/202608/06/2026
SO-5007Garnet Example SA2026-04-0909/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.

Fix Mixed Date Formats in a CSV sample after cleaning
Order IDCustomerOrder DateShip Date
SO-5001Arden Example Co2026-03-1404/03/2026
SO-5002Belmar Example Ltd2026-03-1905/04/2026
SO-5003Castell Example Inc2026-04-0206/05/2026
SO-5004Dunmore Example LLC2026-03-2802/04/2026
SO-5005Everly Example Group4/5/2607/05/2026
SO-5006Fairlight Example Co2/30/202608/06/2026
SO-5007Garnet Example SA2026-04-0909/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.