Date Validator
Is this a real date?
Checks that a date exists as well as parses — 31 February and 29 February in a common year both parse fine in most languages, and neither is a date.
Questions people ask
The things that come up about date validators, answered plainly.
Why does 2023-02-30 not throw an error in my code?
Because most date constructors roll over rather than reject: JavaScript's `new Date(2023, 1, 30)` silently gives 2 March. That is a validation bug waiting to happen, and it is the main thing this page checks for.
Is 29 February 2100 valid?
No. 2100 divides by 100 but not 400, so it is a common year. It is the century exception that most hand-written leap-year checks get wrong.
Related tools
Julian days, Excel serials, GPS time, cron expressions and format validators.
ISO 8601 ValidatorA strict check against the standard, with the specific rule any failure broke — and a note on whether it would also pass as RFC 3339, which is stricter still.
Leap Year CheckerThe answer, the rule that produced it, the next and previous leap years, and the century exceptions that catch people out.
Date ParserPaste anything that looks like a date and see what it resolves to — and, more usefully, why: which format matched, what was assumed, and what else it could have been.
Timestamp ValidatorChecks a numeric timestamp for the mistakes that actually happen: the wrong unit, a 32-bit overflow, a sentinel value, or a date nowhere near where it should be.