¿Cómo se configura globalmente el formato de fecha en ASP.NET?

¿Cómo se configura globalmente el formato de fecha en ASP.NET?

La máquina y los servidores locales tienen Configuración regional configurada en “Inglés (Nueva Zelanda)”.

Cuando formato una fecha con dd/MM/yyyy , espero ver 19/11/2008 para hoy, por ejemplo.

Hasta hace poco, eso es lo que obtuve, de hecho, tanto de mi máquina local como de los servidores.

Recientemente, por algún motivo misterioso, nuestras máquinas locales han cambiado muy poco. A pesar de que aún se establece en “Inglés (Nueva Zelanda)”, el delimitador de fecha ha cambiado de / a - ! El mismo cambio no se ha producido en los servidores que aún muestran “English (New Zealand)” y / para el delimitador de fecha.

Así que ahora para mi máquina local, para el formato dd/MM/yyyy me sale 19-11-2008 lugar de 19/11/2008 .

Esto es un poco desconcertante.

La única forma de solucionarlo que puedo ver hasta ahora es escapar de las barras diagonales y establecer el formato en dd\/MM\/yyyy . Parece que funciona, pero no parece ser la solución ideal.

Alguien puede ayudarme porfavor?

NOTA: Esto es para una aplicación de intranet y no me importa la verdadera globalización. Solo quiero arreglar el formato de fecha y no hacer que cambie en mí.

Puede cambiar la cultura del hilo actual en su archivo Global.asax y anular el formato de fecha, por ejemplo:

 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; } 

En web.config, configure la etiqueta de acuerdo con la siguiente documentación

    

Una buena forma es configurar Web.Config, el formato de fecha aparece en todos los componentes de un aspx

    

Puede establecer su cultura sin manipulación:

 using System.Globalization; using System.Threading; 

using System.Globalization; using System.Threading;

// …
nulo protegido Application_BeginRequest (remitente del objeto, EventArgs e)
{
Thread.CurrentThread.CurrentCulture = Thread.CurrentThread.CurrentUICulture = new CultureInfo (“en-NZ”);
}

Para cadenas de formato, el carácter de formato / no se resuelve en el literal “/” como cabría esperar. En su lugar, se resuelve en el separador de fecha y hora actual como se configuró en su configuración regional. Intente cambiar la propiedad DateTimeFormatInfo.DateSeparator.

Para obtener más información, consulte: http://msdn.microsoft.com/en-us/library/8kb3ddd4.aspx

Es una publicación anterior, pero pensé que podría ser útil mencionarla aquí, mi problema era algo parecido a lo que me había preguntado el OP, pero la solución fue que la cultura se modificó en el IIS, no desde el panel de control.

IIS tiene su propia selección de cultura, que de forma predeterminada seguirá la cultura informática local. Pero por alguna razón, se cambió a una cultura diferente, y comencé a obtener esos formatos de fecha extraños.

Puedes buscar más respuestas aquí .