Как вы глобально устанавливаете формат даты в ASP.NET?



как вы глобально установить формат даты в ASP.NET?



моя локальная машина и серверы имеют региональные настройки, установленные на "английский (Новая Зеландия)".



когда я форматирую дату с dd/MM/yyyy Я ожидаю увидеть 19/11/2008 сегодня например.



до недавнего времени, это то, что я действительно из моей локальной машины и сервера.



совсем недавно, по какой-то таинственной причине, наши местные машины изменились совсем немного. Несмотря на по-прежнему устанавливается на "английский (Новая Зеландия)", разделитель даты изменился с / до -! То же самое изменение не произошло на серверах, которые все еще показывают "английский (Новая Зеландия)" и / для разделителя дат.



Итак, теперь для моей локальной машины, для формата dd/MM/yyyy Я 19-11-2008 вместо 19/11/2008.



это немного смущает.



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



может кто-нибудь помочь?



Примечание: это для интранет-приложения, и я не забочусь об истинной глобализации. Я просто хочу исправить формат даты и не менять его на мне.

774   6  

6 ответов:

вы можете изменить текущую культуру потока в вашем глобальном.файл asax и переопределить формат даты, например:

using System.Globalization;
using System.Threading;

//...
protected void Application_BeginRequest(Object sender, EventArgs e)
{    
  CultureInfo newCulture = (CultureInfo) System.Threading.Thread.CurrentThread.CurrentCulture.Clone();
  newCulture.DateTimeFormat.ShortDatePattern = "dd-MMM-yyyy";
  newCulture.DateTimeFormat.DateSeparator = "-";
  Thread.CurrentThread.CurrentCulture = newCulture;
}

в интернете.конфигурация, набор тегов как следующая документация

<system.web>
    <globalization  culture="en-NZ"  uiCulture="en-NZ"/>
</system.web>

хороший способ-настроить веб.Config, формат даты появляется во всех компонентах aspx

<system.web>    
<globalization uiCulture="en" culture="en-NZ" />
</system.web>

вы можете установить свою культуру без манипуляций:


using System.Globalization;
using System.Threading;

//... protected void Application_BeginRequest(Object sender, EventArgs e) {
Thread.CurrentThread.CurrentCulture = Thread.CurrentThread.CurrentUICulture = new CultureInfo("en-NZ"); }

для строк формата символ формата / фактически не разрешается в литерал "/", как можно было бы ожидать. Вместо этого он разрешает текущий разделитель даты и времени, настроенный в региональных настройках. Попробуйте изменить DateTimeFormatInfo.DateSeparator собственность.

для получения дополнительной информации см.: http://msdn.microsoft.com/en-us/library/8kb3ddd4.aspx

Это старый пост, но я подумал, что было бы полезно упомянуть об этом здесь, моя проблема была чем-то вроде того, что ОП спросил, но решение состояло в том, что культура была изменена в IIS, а не из панели управления.

IIS имеет собственный выбор языка и региональных параметров, который по умолчанию будет следовать за локальным языком и региональными параметрами компьютера. Но по какой-то причине он был изменен на другую культуру, и я начал получать эти странные форматы даты.

вы можете искать больше ответов здесь.

Comments

    Ничего не найдено.