Перевести дату из Персидского в Григорианский язык
Как я могу преобразовать персидскую дату в Григорианскую дату с помощью системы.глобализация.PersianCalendar?
Обратите внимание, что я хочу преобразовать мою персидскую дату (например, сегодня 1391/04/07) и получить результат Григорианской даты, который в этом случае будет 06/27/2012.
Я считаю секунды до ответа ...
3 ответов:
На самом деле это довольно просто:
// 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Когда вы вызываете конструктор
DateTimeи передаете его вCalendar, он преобразует его для вас - так чтоdt.Yearбудет 2012 в этом случае. Если вы хотите пойти другим путем, вам нужно построить соответствующийDateTime, а затем использоватьCalendar.GetYear(DateTime)и т. д.Короткая, но полная программа:
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)); } }Который печатает 27.06.2012 00: 00: 00.
То, что вы должны сделать, это просто определить календарь в определении:
DateTime dt = new DateTime(year, mon, day, new PersianCalendar());
Этот код можно использовать для преобразования персидской даты в Григорианскую.
// 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();
Comments