Gregorian 달력에 아랍어 날짜를 표시하는 방법은 무엇입니까?
-
21-08-2019 - |
문제
다국어 ASP.NET 사이트가 있습니다. 언어 중 하나는 아랍어 (AR-SA)입니다. 문화간에 전환하려면이 코드를 사용합니다.
Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture(Name)
Thread.CurrentThread.CurrentUICulture = New CultureInfo(Name)
예를 들어 기사의 날짜를 표시 할 때, 나는 이것을 수행하고 현지화 API는 모든 것을 처리합니다.
<%#Eval("DatelineDate","{0:d MMMM yyyy}")%>
문제는 이것이 Hijiri (이슬람) 달력을 사용하여 날짜를 표시한다는 것입니다 (예 : 2008 년은 1429로 렌더링). 고객은 Gregorian 달력을 사용하여 날짜를 표시하려고합니다 (물론 월 이름과 다른 모든 것을 아랍어로 렌더링합니다). 어떻게 할 수 있습니까?
해결책
대답:
AR-SA 문화는 Hijiri 달력을 사용하는 유일한 사람입니다. 다른 모든 아랍어 문화는 그레고리안을 사용합니다. 아랍어의 다른 날짜 형식은 다음과 같습니다 (WMD가 RTL 텍스트를 지원하는 것처럼 보이지 않기 때문에 약간 엉망입니다).
ar-AE 11 ديسمبر 2008
ar-BH 11 ديسمبر 2008
ar-DZ 11 ديسمبر 2008
ar-EG 11 ديسمبر 2008
ar-IQ 11 كانون الأول 2008
ar-JO 11 كانون الأول 2008
ar-KW 11 ديسمبر 2008
ar-LB 11 كانون الأول 2008
ar-LY 11 ديسمبر 2008
ar-MA 11 دجنبر 2008
ar-OM 11 ديسمبر 2008
ar-QA 11 ديسمبر 2008
ar-SA 13 ذو الحجة 1429
ar-SY 11 كانون الأول 2008
ar-TN 11 ديسمبر 2008
ar-YE 11 ديسمبر 2008
그리고 그만한 가치가있는 것에 대해 여기 에이 목록을 생성하는 데 사용한 빠른 & 더러운 코드가 있습니다.
Response.Write("<table width=300px>")
For Each ci As CultureInfo In (From c As CultureInfo In CultureInfo.GetCultures(CultureTypes.AllCultures) Order By c.Name Where c.Name.StartsWith("ar-"))
Thread.CurrentThread.CurrentCulture = CultureInfo.GetCultureInfo(ci.Name)
Thread.CurrentThread.CurrentUICulture = New CultureInfo(ci.Name)
Response.Write(String.Format("<tr><td>{0}</td> <td style='direction:rtl;font-size:20px;'>{1:d MMMM yyyy}</td></tr>", ci.Name, Today))
Next
Response.Write("</table>")
Response.End()
더 많은 문화 http://www.massimilianobianchi.info/max/articles/22/ui-culture-list-and-codes.aspx
다른 팁
다른 아랍어 로케일 만 사용할 수 있습니다. 그들 사이의 유일한 차이점은 날짜 형식입니다 ...
제휴하지 않습니다 StackOverflow