如何将格里高利日期转换为波斯日期?

我想在C#中将自定义格里高利日期转换为波斯日期。 例如,我有一个包含此内容的字符串:

string GregorianDate = "Thursday, October 24, 2013"; 

现在我希望:

string PersianDate =پنجشنبه2آبان1392;

要么

string PersianDate = 1392/08/02

谢谢

使用PersianCalendar:

 string GregorianDate = "Thursday, October 24, 2013"; DateTime d = DateTime.Parse(GregorianDate); PersianCalendar pc = new PersianCalendar(); Console.WriteLine(string.Format("{0}/{1}/{2}", pc.GetYear(d), pc.GetMonth(d), pc.GetDayOfMonth(d))); 

你可以使用PersianDateTime:

 PM> Install-Package PersianDateTime 

参考: PersianDateTime

如果需要自定义,可以使用string.Split()

加上其他答案,您可以使用PersianDateTime获得第一个答案 :

 var gregorianDate = "Thursday, October 24, 2013"; var date = DateTime.Parse(gregorianDate); var persianDate = new PersianDateTime(date); var result = persianDate.ToString("dddd d MMMM yyyy"); 
  DateTime date = new DateTime(2013, 10, 24); var calendar = new PersianCalendar(); var persianDate = new DateTime(calendar.GetYear(date), calendar.GetMonth(date), calendar.GetDayOfMonth(date)); var result = persianDate.ToString("yyyy MMM ddd", CultureInfo.GetCultureInfo("fa-Ir")); 

在Windows 10中,使用框架4+:

 Console.WriteLine(Convert.ToDateTime("1392/08/02",new CultureInfo("fa-IR"))); 

要么

 Console.WriteLine(DateTime.Parse("1392/08/02", new CultureInfo("fa-IR"))); 

我建议使用MD.PersianDateTime ,你可以像使用DateTime一样简单:

 var persianDateTimeNow = PersianDateTime.Now; persianDateTimeNow.EnglishNumber = true; Console.WriteLine(persianDateTimeNow.ToString()); 

https://github.com/Mds92/MD.PersianDateTime