Day of the Week Finder – What Day Was July 4, 1776?
Enter any past or future date and instantly learn the day of the week. Uses the Zeller’s congruence algorithm for accurate results.
UD5 Toolkit
Visualize Intl.DateTimeFormat output across locales, time zones, and format options. Inspect formatToParts() breakdown and compare multiple locales side-by-side.
// Loading...
Intl.DateTimeFormat is a built-in JavaScript API that provides language-sensitive date and time formatting. It's part of the ECMAScript Internationalization API (ECMA-402) and is supported in all modern browsers and Node.js. It allows developers to format dates according to different locales without external libraries.
dateStyle / timeStyle are preset shortcuts introduced in ECMA-402 2019. They let you request "full", "long", "medium", or "short" formats without specifying individual components. Custom options (weekday, year, month, day, hour, minute, second, etc.) give you granular control over each part of the output. Note: you cannot mix dateStyle/timeStyle with individual component options — it's one or the other.
The timeZone option specifies which IANA time zone to use for formatting. The same UTC timestamp will display differently depending on the time zone. For example, 2024-01-15T20:00:00Z shows as "3:00 PM" in America/New_York but "5:00 AM" in Asia/Tokyo (next day). If no time zone is specified, the browser's local time zone is used.
formatToParts() returns an array of objects representing each part of the formatted string. Each object has a type (like "weekday", "month", "day", "year", "literal", etc.) and a value. This is extremely useful for custom rendering, such as colorizing specific parts, extracting components, or building custom date picker displays.
Modern browsers support hundreds of locales. Common ones include en-US (American English), en-GB (British English), zh-CN (Simplified Chinese), ja-JP (Japanese), de-DE (German), fr-FR (French), es-ES (Spanish), pt-BR (Brazilian Portuguese), ko-KR (Korean), and ar-SA (Arabic). Use Intl.DateTimeFormat.supportedLocalesOf() to check if a specific locale is available.
The calendar option supports various calendar systems: gregory (Gregorian, the default), chinese (Chinese lunar calendar), islamic (Islamic/Hijri), japanese (Japanese imperial), persian (Persian/Solar Hijri), buddhist (Buddhist), hebrew (Hebrew), and indian (Indian national). Note that not all calendars are supported for every locale.
For many use cases, yes. Intl.DateTimeFormat is native (no extra bundle size), fast, and supports a wide range of locales. Libraries like Moment.js or Luxon offer additional features like date manipulation, relative time, and time zone conversion. For pure formatting, Intl.DateTimeFormat is often the best choice. Combined with Intl.RelativeTimeFormat and Intl.NumberFormat, you can cover most i18n needs natively.
Use Intl.DateTimeFormat.supportedLocalesOf([locale]) to check if a locale is supported before using it. If the returned array is empty, fall back to a default locale (like en-US). Intl.DateTimeFormat itself will also automatically fall back to a similar supported locale if the requested one isn't available, but explicitly checking gives you more control.
Enter any past or future date and instantly learn the day of the week. Uses the Zeller’s congruence algorithm for accurate results.
Find average first and last frost dates for your zip code using cached NOAA data. Garden planning essential.
Experiment with JavaScript Intl.DateTimeFormat options. Choose locale, dateStyle, timeStyle, hour12 and see live output. Copy the code snippet for your project.
Convert any date into Roman numerals (day‑month‑year) for tattoos or special occasions. Clean and local.
Enter any date and get its ISO week number, plus the start and end dates of that week. Quick reference.
Explore all Intl APIs: NumberFormat, DateTimeFormat, RelativeTimeFormat, ListFormat. See outputs for any locale. Powerful i18n.
Paste your Accept‑Language header and see which languages your site should serve based on quality values. Internationalization helper.
Find out what day number of the year any date is (1‑366). Also shows days remaining. Simple reference.
Paste a human‑readable date (like 'next Friday' or 'March 5, 2023') and convert it to ISO 8601 format. Quick and tolerant.
Enter any date and instantly know which quarter it belongs to. Also shows fiscal quarter if start month set.
Enter two date‑time values and get the exact years, months, days, hours, minutes difference. Word output also.
Calculate the exact number of days, weeks, months, and workdays between two dates. Visual calendar highlights. Perfect for projects.
Enter any date and get the ISO week number. Also shows start and end of that week. Handy for project planning.
Convert any human‑readable date to a Unix timestamp in seconds or milliseconds. Also shows ISO 8601. Clean interface.
Convert any date into Roman numerals (day‑month‑year) for tattoos or special occasions. Clean and local.
Find what day of the week any past or future date falls on. Uses Zeller’s congruence. Fun historical reference tool.
Enter a year to check if it is a leap year. Shows the rule explanation and next/previous leap years. Simple reference.
Create a personal countdown to any future date (birthday, vacation, launch). Shows days, hours, minutes, seconds. Locally stored.
Find the date of Easter Sunday for any given year. Learn about the computus algorithm. Simple and accurate.
Convert Unix timestamps to human-readable dates and vice versa. Supports seconds and milliseconds. Ideal for developers debugging time-related code.
Find your exact age in years, months, and days. Calculate the time until your next birthday. All date computations are performed locally and accurately.