Skip to main content

Free Persian Date Converter (Jalaali / Shamsi)

Convert Persian (Iranian Shamsi / Jalali) dates to English Gregorian dates and back instantly, with weekday, age in Jalaali years, Afghan Dari month names and Persian numerals. Free, private, and runs entirely in your browser.

Works offline once loaded

Month names in English, Persian or Dari work, with common spellings. Numbers with the year last are read as day/month/year. Add SH or CE to force a calendar.

Conversion mode

Gregorian to Jalaali (Shamsi)

Month names
Note: The Solar Hijri (Shamsi) year begins at the vernal equinox (Nowruz), so a Gregorian date maps to one of two adjacent Jalaali years depending on whether it falls before or after roughly March 20-21. This converter uses the official Iranian 33-year leap-year rule (the jalaali-js algorithm). Afghan Solar Hijri uses the same arithmetic with Dari month names.

📆 Everything runs in your browser. No dates are uploaded or stored.

How It Works

This tool converts dates between the Persian Jalaali calendar (also called Solar Hijri, Shamsi, or Khorshidi) and the Gregorian calendar in both directions. It uses the official Iranian 33-year leap-year rule (the in-house Borkowski / jalaali-js algorithm) so every conversion is exact, and it also shows the weekday, computes age in Jalaali years, and supports Afghan Dari month names.

  1. 1
    Pick a conversion mode
    Choose Gregorian to Jalaali, Jalaali to Gregorian, or Age in Jalaali. The tool opens on today's date already converted, so you see a useful result immediately.
  2. 2
    Enter your date
    Use the date picker for Gregorian input, or type the day, month, and year for a Jalaali (Shamsi) date (Persian digits work too). The month dropdown lists all twelve Persian months and validates day counts, including Esfand's 29 or 30 days in leap years.
  3. 3
    Read the result and copy it
    See the converted date in both ISO and full written form, plus the weekday in your language and in Persian. Toggle Persian numerals or Afghan Dari month names, then copy the result with one click.

Every calculation happens locally in your browser using a built-in algorithm. No dates are ever uploaded, logged, or stored on a server.

Guide

Worked example

A visa form asks for your Gregorian birth date, but your ID card says 17 Mordad 1405. Type "17 Mordad 1405" into the box at the top and the tool reads it as a Shamsi date and shows 8 August 2026, a Saturday. Going the other way, 21 March 2025 comes out as 1 Farvardin 1404 (Nowruz), and the day before it, 20 March 2025, is 30 Esfand 1403, because 1403 was a leap year.

Which settings to use, and the limits

  • Type the date as you have it. The box under "Type a date in either calendar" accepts forms like 1403/05/17, 17-5-1403, 17 Mordad 1405, ۱۷ مرداد ۱۴۰۵ or August 8, 2026. A year under 1700 is read as Shamsi and 1700 or more as Gregorian. Add SH or CE after the year if you want to force one calendar.
  • Check the day/month order. Numbers with the year last are read as day/month/year, so 5/6/2026 is 5 June 2026. Only when the middle number is above 12 (for example 5/17/2026) is it read as month/day. Use the month name or the year-first form (2026-06-05) when the order matters.
  • Know the supported range. Shamsi years 1 to 3177 and Gregorian years 622 to 3797 convert. Outside that you get "Year is outside the supported range (1–3177 SH)". Two-digit years such as 17 are not guessed; type the full year.
  • Use "Bulk list" for many dates. Paste one date per line, in any mix of formats, and the tool converts up to 5,000 lines. Shamsi dates give Gregorian and Gregorian dates give Shamsi. "Copy all" and "Download CSV" include every row, even though the table on screen shows only the first part.
  • Switch to Afghan month names when needed. "Month name preset" has "Persian (Iran)" (Farvardin, Ordibehesht...) and "Afghan / Dari" (Hamal, Sawr...). The dates and leap years are the same; only the names change. Tick "Persian numerals" to show the result in ۰-۹ digits.
  • Add the result to a calendar. Under the result, "Download .ics" creates an all-day event for the converted date. The optional name box lets you title it, for example Birthday or Visa deadline.

Common problems and how to fix them

It says "That day does not exist in this Jalaali month."
Check the month length. Farvardin to Shahrivar have 31 days, Mehr to Bahman have 30, and Esfand has 29 days, or 30 in a leap year. 30 Esfand 1404 is not valid because 1404 is a common year; 30 Esfand 1403 is.
It says "Year is outside the supported range (1–3177 SH)."
Enter a Shamsi year between 1 and 3177. If you meant a Gregorian date, switch to "Gregorian → Jalaali" or use the quick box with a year of 1700 or more.
My date was read as the wrong calendar.
The quick box guesses the calendar from the year, so a year such as 1650 is treated as Shamsi even if you meant Gregorian. Add CE or SH after it, or use "Read as a Gregorian date" or "Read as a Shamsi (Jalaali) date" under the result.
The quick box says "Could not read that as a date."
The tool needs a day, a month and a four-digit year (three numbers, or two numbers plus a month name). A month and year alone is not enough. Try 17 Mordad 1405 or 1403/05/17.
A date around 20 or 21 March looks a year off.
The Shamsi year changes at Nowruz, which falls on 20 or 21 March depending on the year. 19 March 2024 is still in 1402 and 20 March 2024 is 1 Farvardin 1403. That is correct, not an error.

How it compares

Solar Hijri (Shamsi) and Gregorian are both solar calendars, so a conversion never shifts by a day or two the way a lunar Hijri conversion can. The difference is the year start: Shamsi begins at Nowruz in March, so its year number is the Gregorian year minus 621 from Nowruz to the end of December and minus 622 from January to Nowruz. The tool also shows the Umm al-Qura Hijri date as an extra line. That one comes from your browser's calendar data and can differ by a day from a local moon sighting.

Related Tools

Frequently Asked Questions