C# 如何将公历日期转换为波斯日期?

C# 如何将公历日期转换为波斯日期?,c#,date,gregorian-calendar,date-conversion,persian,C#,Date,Gregorian Calendar,Date Conversion,Persian,我想将自定义的公历日期转换为C#中的波斯日期。 例如,我有一个包含以下内容的字符串: string GregorianDate = "Thursday, October 24, 2013"; 现在我想要: 字符串PersianDate=پنج‌شنبه 2 آبان 1392 ; 或 字符串PersianDate=1392/08/02 谢谢使用波斯卡伦达: string GregorianDate = "Thursday, October 24, 2013"; DateTime d = Dat

我想将自定义的公历日期转换为C#中的波斯日期。 例如,我有一个包含以下内容的字符串:

string GregorianDate = "Thursday, October 24, 2013";
现在我想要:

字符串PersianDate=پنج‌شنبه 2 آبان 1392 ;

字符串PersianDate=1392/08/02


谢谢使用波斯卡伦达:

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)));

在windows 10中,使用framework 4+:

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


您可以使用PersianDateTime:

PM> Install-Package PersianDateTime
参考资料:


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

将其他答案相加,您可以使用以下方法获得第一个答案:


Fowling代码应该在.net 4+中工作:

DateTime date=Convert.ToDateTime("2020-07-12T19:30:00.000Z");
string persianDateString = date.ToString("yyyy/MM/dd",new CultureInfo("fa-IR"));
persiandTestRing
值应为:

1399/04/23

在Windows10中,默认情况下使用波斯文化,此代码将不起作用。在答案中可以看到使用示例。
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=Convert.ToDateTime("2020-07-12T19:30:00.000Z");
string persianDateString = date.ToString("yyyy/MM/dd",new CultureInfo("fa-IR"));
1399/04/23