Как отобразить арабские даты в григорианском календаре?

У меня есть многоязычный сайт ASP.NET; один из языков - арабский (ar-SA). Для переключения между культурами я использую этот код:

Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture(Name)
Thread.CurrentThread.CurrentUICulture = New CultureInfo(Name)

Например, при отображении даты статьи я просто делаю это, а API локализации позаботится обо всем:

<%#Eval("DatelineDate","{0:d MMMM yyyy}")%>

Проблема в том, что при этом отображаются даты с использованием календаря хидзири (исламского) (например, 2008 год представлен как 1429). Клиент хочет отобразить даты с помощью григорианского календаря (по-прежнему отображая названия месяцев и все остальное на арабском, конечно). Как я могу это сделать?

11.12.2008 16:32:27
2 ОТВЕТА
РЕШЕНИЕ

Ответ:

Оказывается, культура ar-SA единственная, кто использует календарь Хидзири; все другие арабские культуры используют григорианский. Вот различные форматы дат на арабском языке (немного запутано, потому что 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

10
27.09.2014 06:32:17
Обратите внимание на названия месяцев: некоторые из них транслитерированы на английском языке, другие - с французского или даже вавилонского.
Osama Al-Maadeed 29.06.2009 14:29:38

Вы можете просто использовать другую арабскую локаль, единственная разница между ними - формат даты ...

2
25.01.2009 04:38:16