About Random Date
Random Date generates dates between a start and an end that you specify, one per line. It is the tool for building a timeline of plausible records — test data spread over a reporting period, sample order dates, a fixture for a date-range filter.
The draw is uniform across the interval, so any date in the range is equally likely rather than clustering near one end. Each date is returned in the standard year-month-day form, which sorts correctly as text and is accepted directly by most databases and spreadsheet tools without reformatting.
One detail can look like an error if you do not expect it. Dates are rendered in universal time rather than in your local zone, so a generated date can differ by one day from the date you would write down for the same instant. The values also fall only on whole days, with no time component, so a fixture that needs distinct timestamps within a day would need more than this.
How to use Random Date
- 1 Enter the start date in year-month-day form.
- 2 Enter the end date in the same form.
- 3 Set how many dates you want and copy the list.
Frequently asked questions
Why does a date sometimes look a day out?
Because the values are rendered in universal time rather than the local zone. Near midnight the two can fall on different calendar days, which is worth knowing when comparing generated dates with something recorded locally.
Can the range be in the past?
Yes, any pair of dates works, before or after the present. That makes the tool suitable for historical fixtures as well as for forward-looking sample data.
Are the dates sorted?
No, they come back in the order they were drawn, which is effectively random. Sort the list if the fixture needs a chronological sequence — the year-month-day format sorts alphabetically into the correct chronological order.
Do the results include a time of day?
No, only the calendar date. That is deliberate for a date range, and it means records needing a distinct time within a day would need the time added separately after generation.
Free, online, and private
Free to use
Random Date is completely free. There is no account to create, no login, and no hidden charge or usage limit.
Runs online in your browser
It is a free online tool that runs entirely in your browser. Nothing to download or install — open the page and start using it right away.
Your data stays private
All processing happens locally on your device. Your input is never uploaded, stored, or tracked, so it never leaves your browser.
How Random Date behaves in detail
These are the specifics of this implementation — the exact ranges, defaults and fixed settings you are working with.
| Parameter | Value |
|---|---|
| Input fields | two text boxes, defaulting to 2000-01-01 and 2030-12-31 |
| Printed form | YYYY-MM-DD — the ISO string is sliced to its first 10 characters |
| Draw method | start timestamp + Math.random() × (end − start), in milliseconds |
| Printed date span | with the defaults, 2000-01-01 up to 2030-12-30 — the end value itself is never printed |
| Invalid input | the whole batch is replaced by one line reading "Invalid date format" |
Compiled from the implementation of this tool and checked against it by itoolnet.
What Random Date does not do
Knowing the edges of a tool saves more time than another list of its features. These are the cases where it will not do what you might expect.
- Only the calendar date survives. The value behind each row is a millisecond timestamp, but the output is truncated with slice(0, 10), so no time of day and no time zone offset is ever produced.
- The two text fields go straight into the browser Date constructor, so the accepted syntax is whatever that engine parses rather than strictly YYYY-MM-DD, and non-ISO forms are read in the local time zone of whoever opens the page.
- One malformed bound kills the entire batch: the run returns the single string "Invalid date format" instead of the requested rows, and the other bound is never used as a fallback.
Tested and documented by itoolnet, the team that builds and maintains this site.