Арабская культура "ar-sa" Ошибка DateTime - PullRequest
6 голосов
/ 11 ноября 2011

У меня следующий сценарий: мой сайт разработан для работы с разными культурами (в основном, арабским и английским), когда пользователь выбирает культуру «ar-sa» (из опций интернет-обозревателя), все средства выбора даты конвертируются в хиджры.формат.На одной из моих страниц я использовал элемент управления RadTimePicker telerik, когда я запускаю эту страницу из visual studio, ошибки не появляется, но когда мы развернули эту страницу на сайте, выскочила следующая ошибка:

Допустимые значения: от 1318 до 1450 включительно.Имя параметра: год

Я попытался развернуть страницу на компьютере моего коллеги (в локальном IIS), появляется ошибка.Затем я попытался развернуть его на своем компьютере, используя IIS, на этот раз без ошибок !!

Пожалуйста, кто-нибудь может подсказать, с чего начать, чтобы найти ошибку

Заранее спасибо

Ответы [ 5 ]

2 голосов
/ 10 января 2012

Любые объекты даты и времени, созданные в .NET с CultureInfo "ar-sa", будут использовать объект UmAlQuraCalendar, который указывает, что действительные даты должны иметь свой год между 1318 и 1450. Проверьте документацию .NET для этого объекта, и вы увидим. Для моего проекта мне пришлось загрузить дату без культуры, а затем сравнить ее диапазон с минимальными и максимальными диапазонами календаря текущей культуры, и, если за пределами этого диапазона, преобразовать значение в значение в этом диапазоне, прежде чем анализировать в дату, был дан правильный объект информации о культуре. Обратите внимание, что объекты даты и времени .NET ВСЕГДА в григорианском языке. Чтобы увидеть дату как дату в другом календаре, вы всегда должны смотреть на нее через объект «Календарь», который соответствует используемой вами культуре.

0 голосов
/ 15 октября 2013

в коде позади, установите календарь культуры всегда грузинским. Ниже приведен пример с Telerik DateTimePicker на mypage.aspx

mypage.aspx:

<telerik:RadDateTimePicker ID="CtrlStartPeriod" runat="server">
<DateInput DateFormat="G" DisplayDateFormat="G" runat="server"></DateInput>
</telerik:RadDateTimePicker>

mypage.aspx.cs:

protected override void OnInit(EventArgs e)
{
  base.OnInit(e);
  CtrlStartPeriod.DateInput.Culture.DateTimeFormat.Calendar = new GregorianCalendar();
0 голосов
/ 04 декабря 2012

PUT Культурная собственность как culture = "Английский (США)"

 <telerik:raddatepicker id="dt_DOB" runat="server" culture="English (United States)">
            </telerik:raddatepicker>

Чем пользоваться любой культурой.

0 голосов
/ 05 декабря 2011

На каком сервере вы разместились? Формат даты и времени зависит от настроек на панели управления вашего компьютера.

Если ваш сайт размещен на американском сервере, вам необходимо соответствующим образом изменить контекст даты и времени.

0 голосов
/ 11 ноября 2011

http://www.telerik.com/community/forums/winforms/calendar-and-datetimepicker/valid-values-are-between-1318-and-1450-inclusive-parameter-name-year.aspx охватывает аналогичное использование.

Что касается того, почему он работает на одной машине, а не на другой, я подозреваю, что где-то вдоль линии одна из неявных культур (CurrentCulture и CurrentUICulture), и это может или не может противоречить вашему явному использованию ar-SA в зависимости от того, что это такое.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...