Веб-сайт показывает неверный месяц для july
на арабском языке, это арабский веб-сайт, разработанный в веб-форме asp.net, и культура правильно установлена на «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();
}
В чем может быть причина, может ли это быть сам рабочий сервер?
Мы проверяем почти все возможности и перепробовали все, только месяц ошибается на июль, остальное все ок.
Я также перепроверил настройку языка производственного сервера, настройки IIS, все вроде бы в порядке, единственное, что я могу отметить, это то, что на сервере есть все последние обновления, может быть, мы что-то упустили. мы тестировали то же самое на разных машинах с Windows 7, все работает нормально.
Обновление: я также пробовал предлагать решение, но оно продолжает показывать неправильный месяц для يوليه
ИЮЛЯ. Это не правильно. Мы протестировали его, также он показывает правильную культуру на сервере.
Пример скрипки также показывает неверный месяц https://dotnetfiddle.net/ZAOJ7H
FormatDate
, являетсяDateTime
? Дата в базе данных хранится в этом формате Дата никогда не сохраняется в формате в базе данных. Он должен храниться какdatetime
илиdate
без формата. Если он был сохранен как строка (varchar), вы должны сначала исправить это. - person Tim Schmelter   schedule 11.10.2017string.Format
, которая принимаетCultureInfo
какIFormatProvider
, или установить культуру в файлеWeb.config
, как описано здесь: forums.asp.net/t/ - person Martin Costello   schedule 11.10.20172017-07-25 00:00:00
- person Learning   schedule 11.10.2017