Random Date Generator
Pick a random date between any two dates, or a whole list of them. Limit it to weekdays or weekends, add a random time, skip repeats, and copy the dates in the format you need.
What the random date generator does
It picks dates at random between a start date and an end date, with both ends included. Every day in the range has the same chance, and you can turn off days of the week you do not want, such as weekends.
Dates come out in the format you choose, from 2026-03-05 for spreadsheets and code to Thursday, March 5, 2026 for reading. Add a random time if you need one, and change the format after generating without losing the dates you have.
Why use our random date generator
- ·Free. No signup, no paywall, and no limit on how often you generate.
- ·Any range. From a single week to every date from year 1 to 9999.
- ·Weekdays, weekends, or any mix. Choose exactly which days of the week can come up.
- ·Ready for spreadsheets. Seven date formats, an optional time, and CSV download.
- ·Private. Dates are picked on your device. Nothing is sent to a server.
How to generate a random date
- 1
Set the start and end dates
Pick a start date and an end date, or click a quick pick such as This year or Birthday (age 18 to 65). Both dates can be picked, and if the start is after the end they are swapped.
- 2
Choose the days of the week
All seven days are on to begin with. Turn off Saturday and Sunday for weekdays only, or turn off Monday to Friday for weekends. The line under the days shows how many possible dates are left.
- 3
Choose how many dates and the format
Ask for 1 to 1,000 dates, and turn on No repeats if each date should appear once. Pick a date format, and set Time to 24-hour or 12-hour to add a random time.
- 4
Generate and copy the dates
Click Generate date. Sort the results oldest or newest first, copy them all, or download them as a CSV or text file. Changing the format or time updates the dates already shown.
Random date formats
Here is how the same date, March 5, 2026 at 2:05 PM, looks in each format the generator offers.
| Format | Example |
|---|---|
| ISO 8601 (YYYY-MM-DD)Reads the same in every country and sorts in date order as plain text. The safest choice for spreadsheets, databases, and code. | 2026-03-052026-03-05T14:05 |
| MM/DD/YYYYThe usual short format in the United States. | 03/05/202603/05/2026 2:05 PM |
| DD/MM/YYYYThe usual short format in the UK, Australia, India, and much of Europe. | 05/03/202605/03/2026 2:05 PM |
| Month day, yearWritten dates in American English. | March 5, 2026March 5, 2026 2:05 PM |
| With the day of the weekThe written date with the day of the week in front. | Thursday, March 5, 2026Thursday, March 5, 2026 2:05 PM |
| Day month yearWritten dates in British English and many other countries. | 5 March 20265 March 2026 2:05 PM |
| Unix timestampSeconds since midnight UTC on January 1, 1970. Dates before 1970 are negative. | 17726688001772719500 |
The second line of each example adds a 12-hour time. ISO 8601 always writes the time as 24-hour, joined to the date with a T. Watch out for the two short formats: 03/05/2026 is March 5 in the United States but 3 May in the UK. If the dates will be read in more than one country, use YYYY-MM-DD or a format with the month written out.
When to use a random date generator
- ·Test data. Fill a spreadsheet, a database, or a form with realistic dates. Get up to 1,000 at once in ISO format and download them as a CSV file.
- ·Sample profiles and birthdays. The Birthday quick pick gives a birth date for someone aged 18 to 65 today. Change the range for children, students, or retirees.
- ·Spot checks and audits. Pick random days to check records, inspect equipment, or review sales, so nobody can predict which days will be looked at. Weekdays only skips days the business is closed.
- ·Plans and challenges. Pick a random day for a date night, a team lunch, or a surprise, or a random date in history for a quiz or a writing prompt.
How to generate a random date in Excel, Google Sheets, and code
Spreadsheets store a date as a whole number, so a random whole number between two dates is a random date. These formulas work the same in Excel and Google Sheets.
=RANDBETWEEN(DATE(2026, 1, 1), DATE(2026, 12, 31))The cell shows a number such as 46086 until you format it as a date. Like every RANDBETWEEN formula, it changes each time the sheet recalculates, so paste it as a value to keep it.
=WORKDAY(DATE(2025, 12, 31), RANDBETWEEN(1, NETWORKDAYS(DATE(2026, 1, 1), DATE(2026, 12, 31))))NETWORKDAYS counts the weekdays in the range, and WORKDAY counts forward that many weekdays from the day before the range starts.
import random
from datetime import date, timedelta
start, end = date(2026, 1, 1), date(2026, 12, 31)
start + timedelta(days=random.randint(0, (end - start).days))const start = Date.UTC(2026, 0, 1);
const end = Date.UTC(2026, 11, 31);
const days = (end - start) / 86400000;
const pick = start + Math.floor(Math.random() * (days + 1)) * 86400000;
new Date(pick).toISOString().slice(0, 10);Date.UTC counts months from 0, so 0 is January and 11 is December. Working in UTC keeps daylight saving changes from moving the result by a day.
Random date generator questions
- How do I generate a random date between two dates?
- Enter the start date and the end date, then click Generate date. Every day from the start to the end has the same chance of being picked. Use How many to get several dates at once.
- Are the start and end dates included?
- Yes. Both the start date and the end date can be picked. A range from March 1 to March 31 has 31 possible dates.
- How do I get only weekdays or only weekends?
- Under Days of the week, turn off Sat and Sun for weekdays only, or turn off Mon to Fri for weekends only. You can turn off any mix of days, for example to get only Fridays.
- How do I generate a random birthday?
- Click Birthday (age 18 to 65). It picks a date of birth for someone who is between 18 and 65 years old today. For other ages, set the start date to the oldest birthday you want and the end date to the youngest.
- Can I add a random time to each date?
- Yes. Set Time to 24-hour or 12-hour. Each date gets a random time to the minute, from 00:00 to 23:59, and every minute is equally likely. Set Time back to No time to hide it again.
- How do I make sure no date repeats?
- Turn on No repeats. You can then get at most as many dates as the line under the days shows. If you ask for more, the tool tells you to lower the number or widen the range.
- Why does 03/05/2026 not match the date I expected?
- In the United States, 03/05/2026 means March 5. In the UK and most of Europe, it means 3 May. If people in different countries will read the dates, use YYYY-MM-DD or a format with the month written out.
- What years can I use?
- Any date from year 1 to year 9999. The tool uses the modern Gregorian calendar for every year, so dates before October 1582, when that calendar started, will not match the older Julian dates found in many historical records.
- What time zone are the dates in?
- None. The dates and times are plain calendar values, so they are the same wherever you are. Only the Unix timestamp needs a time zone, and it treats the date and time as UTC. Use the Epoch Time Converter to see a timestamp in your local time.
- Is every date equally likely?
- Yes. The tool uses your browser's secure random number generator, crypto.getRandomValues(), and every allowed day in the range has the same chance. Days of the week you turned off are never picked.
- Is the random date generator free?
- Yes. It is free with no signup, and it runs in your browser, so nothing is sent to a server. Results are not saved after you leave the page, so copy or download them first.