web-dev-qa-db-fra.com

Comment convertir une date grégorienne en une date perse?

Je souhaite convertir une date grégorienne personnalisée en date perse en C # .Par exemple, j'ai une chaîne contenant ce contenu:

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

Maintenant je veux avoir:

string PersianDate = Jeudi 2 Jeudi 1392;

ou

string PersianDate = 1392/08/02

Merci

31
JAC

Utilisez le calendrier persan: 

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

Vous pouvez utiliser PersianDateTime: 

PM> Install-Package PersianDateTime

La référence: PersianDateTime

Vous pouvez utiliser string.Split() si vous avez besoin de personnalisation.

5
Elnaz

En ajoutant d’autres réponses, vous pouvez obtenir la première en utilisant 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");
1
Ali Seyedi
    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"));
1
Oleg

Je suggère d'utiliser MD.PersianDateTime, vous pouvez l'utiliser aussi facilement que DateTime:

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

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

0
Mohammad Dayyan

Dans Windows 10, en utilisant le framework 4+:

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

ou

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