0

Xamarin Forms 앱에 현지화 된 날짜를 가져오고 싶습니다. ASP.NET MVC에서 정상적으로 작동하는 두 가지 방법을 시도했지만 Xamarin에서 둘 다 작동하지 않는 이유가 궁금합니다. 현재 날짜 얻기 CultureInfo

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

그리고 문화 정보의 달력을 사용하여

:

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

, 다른 날짜/시간 라이브러리를 닷넷을 위해 거기 있다는 것을 알고 도움이 될 수 있습니다. Grandmaster Skeet의 NodaTime은 하나이지만 다른 것들도 있습니다. – bubbleking

+0

@bubbleking, 나는 그것을 사용하고있다. (이 방법) (http://stackoverflow.com/a/27853841/3967440)'SystemClock.Instance.Now.InZone (DateTimeZoneProviders. Tzdb [ "Asia/Tehran"]). Date.ToString()'. – Akbari

답변

0

.Net 프레임 워크는 문화권의 페르시아어 달력을 지원하지 않습니다. 이 문화는 달력을 허용하지 않습니다. 따라서이 문화권에 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'에는 더 이상 [Persian Calendar] (https://msdn.microsoft.com/en-us/library/system.globalization.persiancalendar (v = vs.110) .aspx)이 없습니다. ! – Akbari