web-dev-qa-db-ja.com

グレゴリオ暦の日付をペルシャ暦の日付に変換する方法は?

C#でカスタムグレゴリオ暦の日付をペルシャ暦の日付に変換したい。たとえば、次の内容の文字列があります。

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

今私はしたい:

文字列PersianDate = پنج‌شنبه 2آبان1392;

または

文字列PersianDate = 1392/08/02

ありがとう

36
JAC

PersianCalendarを使用します。

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

PersianDateTimeを使用できます:

_PM> Install-Package PersianDateTime
_

リファレンス: PersianDateTime

カスタマイズが必要な場合は、string.Split()を使用できます。

5
Elnaz

他の回答を追加すると、 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

私はMD.PersianDateTimeを使用して、あなたはDateTimeのように簡単にそれを使用することができますお勧め:

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

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

0
Mohammad Dayyan

Windows 10で、フレームワーク4以降を使用:

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

または

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