2014-11-14 6 views
0

Я работаю над приложением asp.net mvc2. Проблема в том, что когда я показываю дату в формате MM/dd/yyyy, работаю с приложениями, но я должен отображать дату в формате dd/MM/yyyy. Я установил дату в этом формате, но тогда у меня проблема с веб-службой, потому что она ожидает формат даты в MM/dd/yyyy, и я всегда получаю сообщение об ошибке.Изменить формат даты в целом приложении

Сначала я решил написать простой метод, который бы конвертировал дату из одного формата в другой и отображался в dd/MM/yyyy. Но я должен соответствовать методам, использующим дату, и мне придется делать изменения во многих местах.

Я пытался использовать глобализацию в файле веб-конфигурации, как

​ <system.web> 
​​  <globalization 
      requestEncoding="utf-8" 
      responseEncoding="utf-8" 
      culture="en-GB" 
      uiCulture="en-GB" 
     /> 
    </system.web> 

Но это не работает для меня. Есть ли способ изменить формат даты, когда я показываю пользователю, а затем веб-сервис может принять его?

Благодаря

+0

Помогает ли это: http://msdn.microsoft.com/en-us/library/8kb3ddd4(v=vs.110).aspx – Marthijn

+0

Его ММ (месяц) не мм (минуты). Настройка культуры на сервере должна быть прекрасной, или вы можете создать настраиваемое связующее устройство [См. Пример здесь] (http://stackoverflow.com/questions/26813345/wrong-dateformat-with-jquery-datepicker/26813682#26813682) –

ответ

0

На мой взгляд en-GB является правильным местом для culture и uiCulture поскольку это культура, которая имеет формат даты, который вы хотите показать пользователю: dd/MM/yyyy

В тех местах, где вы вызове API, который требует MM/dd/yyyy вы должны указать формат в явном виде, как это MM/dd/yyyy:

myDate.ToString("MM/dd/yyyy", CultureInfo.InvariantCulture); 

Я поместил CultureInfo.InvariantCulture там, чтобы не было шансов, что на сериализацию повлияют будущие изменения в настройках culture и uiCulture для приложения.