Как вы глобально устанавливаете формат даты в ASP.NET?
как вы глобально установить формат даты в ASP.NET?
моя локальная машина и серверы имеют региональные настройки, установленные на "английский (Новая Зеландия)".
когда я форматирую дату с dd/MM/yyyy Я ожидаю увидеть 19/11/2008 сегодня например.
до недавнего времени, это то, что я действительно из моей локальной машины и сервера.
совсем недавно, по какой-то таинственной причине, наши местные машины изменились совсем немного. Несмотря на по-прежнему устанавливается на "английский (Новая Зеландия)", разделитель даты изменился с / до -! То же самое изменение не произошло на серверах, которые все еще показывают "английский (Новая Зеландия)" и / для разделителя дат.
Итак, теперь для моей локальной машины, для формата dd/MM/yyyy Я 19-11-2008 вместо 19/11/2008.
это немного смущает.
единственный способ обойти это, что я могу видеть до сих пор, чтобы избежать косых черт и установить формат dd/MM/yyyy. Это, кажется, работает, но это не кажется идеальным решением.
может кто-нибудь помочь?
Примечание: это для интранет-приложения, и я не забочусь об истинной глобализации. Я просто хочу исправить формат даты и не менять его на мне.
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