Comment convertir la date persane en date grégorienne en utilisant System.globalization.PersianCalendar? Veuillez noter que je souhaite convertir ma date persane (par exemple, aujourd'hui 1391/04/07) et obtenir le résultat de la date grégorienne qui sera le 27/06/2012 dans ce cas. Je compte les secondes pour une réponse ...
C'est assez simple en fait:
// I'm assuming that 1391 is the year, 4 is the month and 7 is the day
DateTime dt = new DateTime(1391, 4, 7, persianCalendar);
// Now use DateTime, which is always in the Gregorian calendar
Lorsque vous appelez le constructeur DateTime
et passez un Calendar
, il le convertit pour vous - donc dt.Year
Serait 2012 dans ce cas. Si vous voulez aller dans l'autre sens, vous devez construire le DateTime
approprié, puis utiliser Calendar.GetYear(DateTime)
etc.
Programme court mais complet:
using System;
using System.Globalization;
class Test
{
static void Main()
{
PersianCalendar pc = new PersianCalendar();
DateTime dt = new DateTime(1391, 4, 7, pc);
Console.WriteLine(dt.ToString(CultureInfo.InvariantCulture));
}
}
Cela imprime 27/06/2012 00:00:00.
Vous pouvez utiliser ce code pour convertir la date persane en grégorien.
// Persian Date
var value = "1396/11/27";
// Convert to Miladi
DateTime dt = DateTime.Parse(value, new CultureInfo("fa-IR"));
// Get Utc Date
var dt_utc = dt.ToUniversalTime();