January is month 1. October is month 10. If you cannot recall those instantly when a form demands a two-digit code, here is the full lookup.
You get the month number list for all twelve months, the MM codes used in dates, and the numbering quirks that catch programmers off guard. No explanation, no history. Just the numbers.
Month Numbers 1-12 and Their Two-Digit Codes
Every month keeps the same number in every date system. The position in the year is fixed. The two-digit code (MM) simply adds a leading zero for months 1 through 9, matching ISO 8601 and US date formats.
The Full List
- January - 1 (01)
- February - 2 (02)
- March - 3 (03)
- April - 4 (04)
- May - 5 (05)
- June - 6 (06)
- July - 7 (07)
- August - 8 (08)
- September - 9 (09)
- October - 10 (10)
- November - 11 (11)
- December - 12 (12)
Month 10 is October. That holds whether you are reading a date from Japan, Brazil, or Germany. The month numbers 1-12 never change.
How Date Formats Use Month Numbers
The number stays put. Its position in the string moves. Three formats cover almost every date you will encounter.
ISO 8601 (International)
Write the year, a hyphen, the two-digit month, a hyphen, then the day. For 28 September, that is 2026-09-28. Use this in spreadsheets, databases, and any system that must sort dates. It removes ambiguity.
US Style
Month first: 09/28/2026. The month leads, then the day, then the year. Fill forms from American companies this way.
European Style
Day first: 28/09/2026. Most of Europe writes the day before the month. If you see 05/06/2026 and do not know the source, you cannot tell whether the month is May or June. Check the context before you act on the date.
Month Numbers in Programming Zero-Based Indexing
Code does not follow the calendar. Many languages number months from 0, not 1.
In JavaScript, Date.getMonth() returns 0 for January and 11 for December. February is 1. March is 2. The offset trips up every developer at least once.
Check Your Language
Before you write a line of date logic, confirm which numbering the library uses. ISO 8601 and US dates count 1 to 12. JavaScript and languages that inherit its approach count 0 to 11. Converting is a single operation: add 1 to go from code to human, subtract 1 to go from human to code.
Read the documentation for the specific tool. Do not assume.
When You Need a Month Number Lookup
Reach for the list above in these situations.
- Online forms that demand MM/DD/YYYY or YYYY-MM-DD. The two-digit code with leading zero is the part people get wrong.
- Writing a check or a paper document. The month box expects digits, not a name.
- Data entry. Databases sort on numeric months, so enter them as numbers from the start.
- Scripting. Converting a month name to its number is a daily task in any language that handles dates.
- Decoding a date from another country. If the day is higher, you can deduce the month. If both numbers are low, you need to know the format.
Keep a month number list open in a tab. It stops small errors before they reach production.
Common Questions About Month Numbering
Why does JavaScript use 0 for January?
Zero-based indexing matches how arrays work: the first element sits at position 0. It is a programming convention, not a calendar rule. Everyday month numbers remain 1 through 12.
What does MM mean?
MM is the two-digit month placeholder. 09 for September. 12 for December. Use it wherever a format string asks for a numeric month with a leading zero.
Is the month number the same everywhere?
Yes. The Gregorian calendar assigns 1 to January and 12 to December in every country that uses it. The only variation is the order of day, month, and year in a full date string.
Quick Reference Month Number to Name
Scan the ordered list for instant lookup.
- January
- February
- March
- April
- May
- June
- July
- August
- September
- October
- November
- December
To go the other direction, find the name and read its position. Month 10 is October. That is the whole lookup.