How to use it
- Paste the dates, one per line, or upload the CSV and pick the date column.
- Pick the output format. ISO (2026-01-15) is the safe choice for databases and spreadsheets.
- Hit Convert dates, then check the Ambiguous and Failed tabs before you use the result.
- Download the CSV. If you uploaded one, the normalized column is added next to your original columns.
What it understands
- ISO dates and timestamps: 2026-01-15, 2026-01-15T14:30:00+05:30
- Numbers with slashes, dashes or dots: 15/01/2026, 01-15-2026, 15.01.26
- Written months in any order: 15 Jan 2026, Jan 15, 2026, 15-Jan-2026, 2026 Jan 15
- Weekdays and ordinals: Thursday, 15th January 2026
- Email-style dates: Tue, 15 Jan 2026 10:30:00 +0530
- Compact dates: 20260115
- Month and year only: January 2026 (becomes the 1st, and says so)
- Excel serial numbers and Unix timestamps, when you switch them on
Every date is checked against the real calendar. 31/02/2026 and 29/02/2025 fail with a reason instead of rolling over into March the way some spreadsheet functions do.
The 03/04/2026 problem
Is it the 3rd of April or the 4th of March? There's no way to tell from the date alone, and most converters pick one without telling you. This tool looks at the whole column first. If anything in it can only be day/month, like 15/01/2026, it reads the rest that way too. If the column contains both kinds, it says so, because that usually means two sources were merged and someone needs to look. Either way, every date that could be read two ways is flagged.
Before a database load. CSV to SQL only types a column as DATE when every value is ISO, on purpose. Normalize here first and you get a real DATE column instead of text.
Questions
How does it decide between day/month and month/day?
From your data. If any date in the column has a first number above 12, like 15/01/2026, the column is day/month. If the second number is above 12, it's month/day. When nothing in the column settles it, it reads day/month and says so, and you can switch it. Every date that could be read both ways is flagged either way.
What happens to 2-digit years?
They're expanded with a pivot year: below the pivot is the 2000s, at or above is the 1900s. The default pivot is 50, so 26 becomes 2026 and 74 becomes 1974. Change it if your data is mostly birthdays, and every 2-digit year is flagged so you can check.
Does it handle Excel date numbers?
Yes, if you tick Excel serial numbers. 46037 becomes 2026-01-15. It's off by default because a column of five-digit numbers could just as well be pincodes or IDs.
What about time zones?
If a value has an offset like +05:30 or Z, it's kept in ISO 8601 output and applied when converting to Unix time. Values without an offset are left as they are, with no time zone guessed.
Is my data uploaded?
No. Parsing happens in your browser.