Вы всегда можете использовать собственный класс System.Globalization.PersianCalendar .NET. но это немного сложно.
Рассмотрим этот код для преобразования даты Джалали (здесь 1387/03/18) в григорианскую дату:
System.Globalization.PersianCalendar persianCal = new System.Globalization.PersianCalendar();
DateTime GregorianDate = persianCal.ToDateTime(1387, 3, 18, 12, 0, 0, 0);
и следующий код для преобразования григорианской даты (здесь 1983/08/03) в строку персидской даты:
DateTime GregorianDate = DateTime.Parse("1983/08/03");
string FarsiDateConverted = persianCal.GetYear(GregorianDate).ToString("0000") + "/" +
persianCal.GetMonth(GregorianDate).ToString("00") + "/" +
persianCal.GetDayOfMonth(GregorianDate).ToString("00");
просто примечание для ссылки, предоставленной @Dan Bailiff. Я должен повторить слова автора статьи:
«Основная цель использования этого JalaiCalendar вместо PersianCalendar .NET Framework должна заключаться в необходимости обсуждения даты для исторических событий. Если вы просто хотите отобразить текущую дату на своем сайте, достаточно PersianCalendar»
Фактически алгоритм .NET Framework корректен для Джалали с 1178 по 1634 годы (по григорианскому языку с 1799 по 2256)
Обновление:
Начиная с .NET Framework 4.6 , класс PersianCalendar использует солнечный астрономический алгоритм Hijri , а не алгоритм наблюдения для вычисления дат. Это делает реализацию PersianCalendar согласованной с персидским календарем, используемым в Иране и Афганистане, двух странах, в которых персидский календарь используется наиболее широко. Так что если вы используете версию .NET Framework> 4.6, вам не нужны никакие другие библиотеки для преобразования дат в / из персидского календаря.