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

时间:2015-06-06 13:51:59

标签: c# date gregorian-calendar date-conversion persian

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

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

现在我想:

  

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

  

string PersianDate = 1392/08/02

由于

7 个答案:

答案 0 :(得分:54)

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

答案 1 :(得分:5)

您可以使用PersianDateTime:

PM> Install-Package PersianDateTime

参考:PersianDateTime

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

答案 2 :(得分:1)

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

答案 3 :(得分:1)

添加其他答案,您可以使用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");

答案 4 :(得分:0)

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

答案 5 :(得分:0)

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

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

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

答案 6 :(得分:0)

错误代码应在.net 4+中运行:

Table(…)

CompanyTable的值为:

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