Перевести дату из Персидского в Григорианский язык



Как я могу преобразовать персидскую дату в Григорианскую дату с помощью системы.глобализация.PersianCalendar?
Обратите внимание, что я хочу преобразовать мою персидскую дату (например, сегодня 1391/04/07) и получить результат Григорианской даты, который в этом случае будет 06/27/2012.
Я считаю секунды до ответа ...

635   3  

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

    Ничего не найдено.