usamos porque juliano imagenes gregoriano diferencias definicion cambio calendario asp.net vb.net localization arabic

asp.net - porque - imagenes del calendario gregoriano



¿Cómo mostrar las fechas en árabe en el calendario gregoriano? (2)

Solo puede usar otra configuración regional árabe, la única diferencia entre ellos es el formato de fecha ...

Tengo un sitio multilingüe de ASP.NET; uno de los idiomas es el árabe (ar-SA). Para cambiar entre culturas, uso este código:

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

Cuando visualizo la fecha de un artículo, por ejemplo, solo hago esto, y la API de localización se encarga de todo:

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

El problema es que esto muestra las fechas usando el calendario Hijiri (islámico) (por ejemplo, el año 2008 se representa como 1429). El cliente quiere mostrar las fechas usando el calendario gregoriano (todavía representa los nombres de los meses y todo lo demás en árabe, por supuesto). ¿Cómo puedo hacer esto?


Responder:

Resulta que la cultura ar-SA es la única que usa el calendario Hijiri; todas las demás culturas árabes usan gregoriano. Aquí están los diferentes formatos de fecha en árabe (algo desordenado porque WMD no es compatible con el texto 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

Y para lo que vale, aquí está el código rápido y sucio que utilicé para generar esta lista:

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()

Más culturas en http://www.massimilianobianchi.info/max/articles/22/UI-culture-list-and-codes.aspx