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

JAC*_*JAC 39 c# date persian date-conversion gregorian-calendar

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

string GregorianDate = "Thursday, October 24, 2013";
Run Code Online (Sandbox Code Playgroud)

现在我希望:

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

要么

string PersianDate = 1392/08/02

谢谢

Ali*_*oza 60

使用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)));
Run Code Online (Sandbox Code Playgroud)


Ole*_*leg 8

    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"));
Run Code Online (Sandbox Code Playgroud)


MSS*_*MSS 6

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

DateTime date=Convert.ToDateTime("2020-07-12T19:30:00.000Z");
string persianDateString = date.ToString("yyyy/MM/dd",new CultureInfo("fa-IR"));
Run Code Online (Sandbox Code Playgroud)

persianDateString值将是:

1399/04/23
Run Code Online (Sandbox Code Playgroud)


Eln*_*naz 5

你可以使用PersianDateTime:

PM> Install-Package PersianDateTime
Run Code Online (Sandbox Code Playgroud)

参考:PersianDateTime

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

  • 在答案中看到用法示例总是很高兴。 (2认同)