Random date generator — dates between any two days, six formats

Set a start and an end date and the tool picks up to 1,000 random dates in between, both days included, in the format your spreadsheet, database or code expects, with an optional time and oldest-first sorting.

Live demo · real result from this tool

Press Generate to create a result.

Processed on your device — nothing is uploaded.

How to use the random date generator

  1. Choose the From and To dates. To defaults to today.
  2. Pick a Format: 2026-10-02 (ISO), 02/10/2026 (day first), 10/02/2026 (month first), 2 Oct 2026, ISO 8601 with time (UTC) or Unix timestamp.
  3. Tick Include a time to add hours, minutes and seconds, and Sort oldest first if you want them in order.
  4. Set How many dates (up to 1,000) and press Generate.

What it does and when to use it

Testers, analysts and teachers often need dates that look real but mean nothing: order dates for a sample sales sheet, sign-up dates for test users, timestamps for fake log lines, due dates for a practice exercise, or dates of birth for a form test. Picking them by hand leads to patterns, such as too many on the 1st or the 15th. Random dates avoid that.

The format menu matters more than it looks. 02/10/2026 is 2 October in most of the world but 10 February in the United States, so choose the order your target system expects, or use ISO, which is never ambiguous. For dates inside complete test records, use the bulk fake data generator. To turn a Unix timestamp back into a readable date, use the Unix timestamp converter. For random whole numbers instead, try the random number generator.

How it works

The tool turns From into midnight UTC and To into 23:59:59.999 UTC, then draws a random fraction between 0 and 1 with crypto.getRandomValues and places a moment that far along the range. Without a time, the moment is cut back to midnight of its day. With ISO 8601 with time the time is always kept. Sort oldest first only reorders the list; it does not change which dates were drawn.

Worked examples

  • A single day, long format. From and To both 2026-02-14, format 2 Oct 2026 style: every result is 14 Feb 2026.
  • The same day as a Unix timestamp. Every result is 1771027200, midnight UTC on 14 February 2026.
  • Dates the wrong way round. From 2025-01-01 and To 2024-01-01 gives “The end date must be on or after the start date.”
  • A year of order dates. From 2024-01-01 to 2024-12-31 gave 2024-11-26, 2024-01-26 and 2024-08-10 in one run; tick Sort oldest first to list them in order.

Limits and tips

  • Repeats are allowed. Ask for 1,000 dates within one month and many days will appear several times.
  • Unix timestamps are in seconds, not milliseconds. Multiply by 1,000 for JavaScript’s Date.
  • Day-first and month-first dates look identical for days 1 to 12. Label your columns.

Frequently asked questions

Is the end date included?
Yes. The range runs from the start of the From day to the last millisecond of the To day, all in UTC, so both days can appear.
Why does it say UTC?
Dates are computed in Coordinated Universal Time so the results are the same wherever you are. Without a time this makes no difference. With a time, convert to your own zone if you need local times.
How do I make realistic dates of birth for adults?
Set From and To to cover the ages you need. For example, 1960-01-01 to 2005-12-31 covers people roughly 20 to 66 years old in 2026. The dates are random, so they are fictional; do not present them as a real person's birthday.
Are all days equally likely?
Yes. The tool picks a random moment uniformly across the whole range with the browser's cryptographic random source, so each day has the same chance.
What does the Unix timestamp option give?
The number of seconds since 1 January 1970 UTC. Without "Include a time" it is midnight of the chosen day, so 14 Feb 2026 gives 1771027200.

Written by the ToolsRift team · Last updated

Pages are drafted with AI assistance and checked by automated tests. How we write and check pages.

Was this tool useful?

Report a problem

Start typing to search every tool.

↑ ↓ to moveEnter to openEsc to close