web-dev-qa-db-ja.com

日付をペルシャ語からグレゴリオ暦に変換する

System.globalization.PersianCalendarを使用してペルシャの日付をグレゴリオの日付に変換するにはどうすればよいですか?私はペルシャ語の日付を変換し(たとえば、今日は1391/04/07)、グレゴリオ暦の結果を取得したいことに注意してください。この結果は2012年6月27日です。私は答えのために秒を数えています...

33

実際には非常に簡単です:

_// 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));
    }
}
_

2012年6月27日00:00:00と印刷されます。

66
Jon Skeet

このコードを使用して、ペルシャ語の日付をグレゴリオ暦に変換できます。

// 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();
11
MohammadSoori