网站在阿拉伯语中显示错误的月份july
,这是在 asp.net webform 中开发的阿拉伯语网站,文化被正确设置为“ ar-AE ”,事件日期在本地机器上显示正确的月份,但在产品上显示属于的月份Egyptian culture
数据库中的日期以smalldatetime
这种格式存储2017-07-25 00:00:00
七月的月份错误
本地主机上的正确月份:25 يوليو 2017
生产月份错误:25 يوليه 2017
<asp:Label ID="lblDate" runat="server" Text='<%# FormatDate(Eval("PublishDate")) %>'>
</asp:Label>
protected string FormatDate(object dt) {
string date = String.Format("{0:MMMM dd, yyyy}", dt);
date = String.Format("{0:dd MMMM yyyy}", dt);
// Response.Write(date + "<br/>");
return date;
}
文化正确设置为阿联酋
protected override void InitializeCulture() {
String lang = "ar-AE";
CultureInfo ci = System.Threading.Thread.CurrentThread.CurrentUICulture;
// Call function to detect Language and assign to session variable
Thread.CurrentThread.CurrentCulture = new CultureInfo(lang);
Thread.CurrentThread.CurrentUICulture = new CultureInfo(lang);
base.InitializeCulture();
}
可能是什么原因,可能是生产服务器本身吗?
我们检查了几乎所有的可能性并尝试了一切,只是在 7 月的月份出错了,一切都很好。
我还交叉检查了生产服务器的语言设置、IIS 设置,一切似乎都很好,我唯一能指出的是服务器有所有最新的更新,可能是我们遗漏了一些东西。我们在不同的 Windows 7 机器上进行了相同的测试,它工作正常。
更新:我也尝试了解决方案建议,但它一直显示错误的月份 JULY يوليه
。这是错误的。我们还对其进行了测试,它在服务器上显示了正确的文化。
小提琴示例也显示错误的月份https://dotnetfiddle.net/ZAOJ7H