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