c# asp.net iis datetime-format

c# - ¿Cómo cambiar las fechas en-US a en-GB para asp.net?



iis datetime-format (2)

en una máquina reveladora (cassini)

new DateTime(2012,3,14).ToString("d")

resultados en

14/03/2012

que es correcto, pero cuando se implementa en un servidor IIS completo, el resultado es

03/14/2012

El servidor está configurado en el panel de control / idioma de la región en todos los idiomas inglés / Reino Unido / GB, la fecha de ejecución en el símbolo del sistema devuelve el formato dd / MM / YYYY.

El sitio está configurado para uiCulture="en-GB" y culture="en-GB" y se muestran en la etiqueta de globalización web.config.

Puedo solucionar este problema agregando una cultura forzada

new DateTime(2012,3,14).ToString("d", new CultureInfo("en-GB"));

pero realmente me gustaría saber qué está configurando el formato incorrectamente.

CultureInfo.CurrentCulture.Name, CultureInfo.CurrentUICulture.Name

ambos devuelven en-US

  • en-US : M/d/yyyy (p. ej., 3/14/2012)
  • en-GB : dd/MM/yyyy (por ejemplo, 14/03/2012)

Valor real en web.config

<globalization requestEncoding="UTF-8" responseEncoding="UTF-8" uiCulture="en-GB" culture="en-GB" />


En su web.config añadir

<globalization culture=''auto'' uiCulture=''auto'' />

y luego, asumiendo que el navegador está configurado correctamente para pasar la configuración regional preferida, el subproceso de trabajo que procesa la solicitud tendrá su CurrentCulture y CurrentUICulture configurados correctamente.

Cualquier operación dependiente de la configuración regional (incluyendo cosas como el formato DateTime d ) utilizará la preferencia del cliente.

Elemento de globalización de web.config en MSDN: https://msdn.microsoft.com/en-us/library/ydkak5b9(v=vs.71).aspx


Me las arreglé para que funcionara poniendo esto en el web.config

<globalization culture="en-GB"/>