2015-06-06 6 views
21

Я хочу преобразовать пользовательскую григорианскую дату в персидскую дату на C#. Например, у меня есть строка с этим содержимым:Как преобразовать григорианскую дату в персидскую дату?

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

Теперь я хочу иметь:

строка PersianDate = پنجشنبه 2 آبان 1392;

или

струнные PersianDate = 1392/08/02

Благодаря

ответ

31

Используйте 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))); 
+0

Как я могу установить это в полном свойстве? – AminM

0
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")); 
+0

В Windows 10 с персидской культурой по умолчанию этот код не будет работать –

1

В окнах 10, используя структуру 4+:

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

или

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

Вы можете использовать PersianDateTime:

PM> Install-Package PersianDateTime 

Референс: PersianDateTime

Вы можете использовать string.Split() если вам нужна настройка.

1

Добавление до других ответов, вы можете получить первый, используя 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"); 
0

Я предлагаю использовать MD.PersianDateTime, вы можете использовать его так же легко, как DateTime:

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

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

Смежные вопросы