如何在ASP.NET中实现公历日期以阿拉伯语格式显示?

2026-03-30 12:121阅读0评论SEO问题
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计501个文字,预计阅读时间需要3分钟。

如何在ASP.NET中实现公历日期以阿拉伯语格式显示?

我有一个多语言的ASP.NET网站;其中一种语言是阿拉伯语(ar-SA)。在不同文化之间切换时,我使用以下代码:

csharpThread.CurrentThread.CurrentCulture=CultureInfo.CreateSpecificCulture(Name);Thread.CurrentThread.CurrentUICulture=Thread.CurrentThread.CurrentCulture;

我有一个多语言的ASP.NET站点;其中一种语言是阿拉伯语(ar-SA).要在不同文化之间切换,我使用以下代码:

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

例如,当显示文章的日期时,我就这样做了,本地化API会处理所有事情:

如何在ASP.NET中实现公历日期以阿拉伯语格式显示?

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

问题在于,这使用Hijiri(伊斯兰)日历显示日期(例如,2008年呈现为1429).客户希望使用公历显示日期(当然,仍然使用阿拉伯语呈现月份名称和其他所有内容).我怎样才能做到这一点?

回答:

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

www.massimilianobianchi.info/max/articles/22/UI-culture-list-and-codes.aspx的更多文化

本文共计501个文字,预计阅读时间需要3分钟。

如何在ASP.NET中实现公历日期以阿拉伯语格式显示?

我有一个多语言的ASP.NET网站;其中一种语言是阿拉伯语(ar-SA)。在不同文化之间切换时,我使用以下代码:

csharpThread.CurrentThread.CurrentCulture=CultureInfo.CreateSpecificCulture(Name);Thread.CurrentThread.CurrentUICulture=Thread.CurrentThread.CurrentCulture;

我有一个多语言的ASP.NET站点;其中一种语言是阿拉伯语(ar-SA).要在不同文化之间切换,我使用以下代码:

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

例如,当显示文章的日期时,我就这样做了,本地化API会处理所有事情:

如何在ASP.NET中实现公历日期以阿拉伯语格式显示?

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

问题在于,这使用Hijiri(伊斯兰)日历显示日期(例如,2008年呈现为1429).客户希望使用公历显示日期(当然,仍然使用阿拉伯语呈现月份名称和其他所有内容).我怎样才能做到这一点?

回答:

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

www.massimilianobianchi.info/max/articles/22/UI-culture-list-and-codes.aspx的更多文化