
YYYY year, MMMM October, MMM Oct, MM 10, DD 05, D 5, Do 5th, DDDD Monday, DDD Mon, HH 14, h 2, mm minutes, ss seconds, A PM, ERA AD/BC, Z offset, X Unix seconds. Put other text in [brackets].Runs entirely in your browser. Nothing is sent or saved, except your settings.
This random date generator creates as many random dates, times or timestamps as you need, from 1 to 100,000 at a time. Pick a range like the last 12 months, a birthday range, the 20th century or a custom span back to 3000 BC. Then limit it to weekdays or weekends, choose a time window, turn off repeats, and format the results as ISO 8601, US or European dates, written-out dates, SQL timestamps, Unix timestamps or your own pattern. The list updates as you change settings, and you can copy it or download it as a text file, a CSV or JSON.
How to generate random dates
- Choose Dates, Dates & times or Times.
- Pick a Range, or type your own From and To dates.
- Set How many, and narrow it down with Days, Times between and No repeats if you need to.
- Choose a Format and an Order, then copy the list or download it. Click New dates for a fresh set.
Date formats
| Format | Example | Good for |
|---|---|---|
| ISO 8601 | 2026-10-12 or 2026-10-12T14:30:00Z | Code, APIs, JSON and anything that needs to sort correctly |
| SQL | 2026-10-12 14:30:00 | Inserting into MySQL, PostgreSQL and SQLite |
| US | 10/12/2026 | Forms and spreadsheets set to US dates |
| European | 12/10/2026 | UK, European and most non-US spreadsheets |
| Long, short and with weekday | October 12, 2026, Oct 12, 2026, Monday, October 12, 2026 | Writing, invitations and anything people read |
| Unix timestamp | 1791813909 | Databases and code that store time as seconds or milliseconds since 1970 |
| Custom | DDDD [the] Do [of] MMMM gives Monday the 12th of October | Any format you need |
Custom formats use tokens: YYYY for the year, MMMM, MMM, MM and M for the month, DD, D and Do for the day, DDDD and DDD for the weekday, HH, H, hh and h for the hour, mm and ss for minutes and seconds, A for AM or PM, ERA for AD or BC, Z for the time zone offset and X for a Unix timestamp. Anything in square brackets is printed as written.
Options
| Option | What it does |
|---|---|
| Range | Ready-made ranges relative to today, like the last 30 days, the next 12 months or birthdays for ages 18 to 80, plus historical ranges. Typing a date switches to Custom. |
| Days | Any day, weekdays only (Monday to Friday) or weekends only. |
| Times between | Limits times to a window, like 09:00 to 17:00 for business hours. A window that ends earlier than it starts, like 22:00 to 06:00, runs overnight. |
| No repeats | Every result is different. If you ask for more than the range allows, like 50 weekend days in a single month, you get every possible one and a note saying so. |
| Order | Random, oldest first or newest first. |
| Seed | Type any word or number to get the same results every time, which is useful for repeatable test data. New dates moves to the next set for that seed. |
| UTC | Unix timestamps and ISO time zone offsets use UTC instead of your local time zone. |
Every day in the range is equally likely, so a range of years isn’t skewed toward any particular month, and leap days turn up as often as they should. The randomness comes from your browser’s secure random number generator unless you set a seed.
BC dates and historical ranges
Type BC dates as 44 BC, March 15, 44 BC or -44. There’s no year 0, so 1 BC is followed by 1 AD. Dates use the proleptic Gregorian calendar, which extends today’s calendar backward. It keeps every result consistent, but before 1582 it won’t match the Julian dates used in most historical records. ISO 8601 output follows the ISO standard for early dates, where 1 BC is year 0000 and 44 BC is -0043.
Frequently asked questions
Can I generate random birthdays?
Yes. Choose Birthdays (ages 18 to 80) as the range, or set your own range for a different age group. Use a long or short format if the dates are for people to read.
How do I get random times only?
Click Times at the top. Set a window with Times between, choose a 12- or 24-hour clock, and turn seconds on or off.
Can I import the dates into Excel or Google Sheets?
Yes. Download the CSV. It has the formatted result, the weekday, an ISO 8601 date and a Unix timestamp. Spreadsheets recognize the ISO column as dates in any language setting.
Why do I get the same dates every time?
You’ve set a seed. Seeds make the results repeatable. Clear the seed for a new random set each time, or click New dates to step to the next set for that seed.
Is it truly random?
Without a seed, it uses your browser’s cryptographic random number generator, the same source used for passwords and keys. Dates are picked evenly, with no rounding bias.
Is anything uploaded or stored?
No. Everything runs in your browser. Only your settings are remembered in your browser for next time.
