c# date gregorian-calendar date-conversion persian

c# - ¿Cómo convertir la fecha gregoriana a una fecha persa?



date gregorian-calendar (5)

Quiero convertir una fecha gregoriana personalizada a una fecha persa en C #. Por ejemplo, tengo una cadena con este contenido:

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

Ahora quiero tener:

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

o

string PersianDate = 1392/08/02

Gracias


Puede usar PersianDateTime:

PM> Install-Package PersianDateTime

La referencia: PersianDateTime

Puede usar string.Split() si necesita personalización.


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


En Windows 10, usando el framework 4+:

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

o

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


Sumando a otras respuestas, puede obtener la primera usando 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");


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