0

Я хочу получить локализованную дату в приложении Xamarin Forms. Я пробовал два способа, которые отлично работают в ASP.NET MVC, но мне интересно, почему ни один из них не работает в Xamarin.Получение текущей даты по CultureInfo

var currentDate DateTime.Now.ToString("yyyy/mm/dd", new CultureInfo("fa-IR")) 

И с помощью календаря Культура Info в:

var month = new CultureInfo("fa-IR").Calendar.GetMonth(DateTime.Now); 

Оба метода дали мне текущую дату в en-US.

По-видимому, PersianCalendar является supposed быть там. Я не понимаю, что мне не хватает?

Я даже пробовал NodaTime, SystemClock.Instance.Now.InZone(DateTimeZoneProviders.Tzdb["‌​Asia/Tehran"]).Date.‌​ToString(), а дата по-прежнему в культуре по умолчанию!

UPDATE

Наконец, Persian Calendar Plus сделал работу! Но было бы очень полезно, если бы кто-то мог понять это!

+1

Если вы столкнетесь с ограничениями с помощью DateTime, это может быть полезно знать, что существуют и другие библиотеки даты/времени там для .Net. Гроссмейстер Skeet's NodaTime - один, но есть и другие. – bubbleking

+0

@bubbleking, я использую его [этот путь] (http://stackoverflow.com/a/27853841/3967440), и я все еще получаю дату 'en-US' by SystemClock.Instance.Now.InZone (DateTimeZoneProviders. Tzdb [ "Азия/Тегеран"]). Date.toString() '. – Akbari

ответ

0

.Net framework не поддерживает персидский календарь для культуры. Эта культура не принимает календарь; поэтому отображение DateTime в этой культуре невозможно.

Вам необходимо создать таможню helper или некоторые extension, как упомянуто здесь.

Используя выше расширение, которое вы можете установить, как это,

// create an instance of culture 
CultureInfo info = new CultureInfo(“fa-Ir”); 
//set Persian calendar to it without get exception 
info.DateTimeFormat.Calendar = new PersianCalendar(); 
+0

'.Net' поддерживает культуру' fa-IR', и я использую ее в приложениях 'MVC', я что-то упускаю? – Akbari

+0

@Akbari вы попробовали, как указано выше? – Sajeetharan

+0

кажется, что '.Net core' не имеет [Персидский календарь] (https://msdn.microsoft.com/en-us/library/system.globalization.persiancalendar (v = vs.110) .aspx) больше ! – Akbari

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