Cambiar la cultura predeterminada de ASP.NET para el formato de fecha
-
06-07-2019 - |
Pregunta
Por alguna razón, el código ASP.NET en mi servidor ahora devuelve un formato de dd / MM / aaaa en lugar de MM / dd / aaaa cuando uso < strong> DateTime.ToString (" g ") .
En lugar de reemplazar todos los " g " formatear cadenas con una cadena de formato concreta o el argumento CultureInfo, ¿hay alguna manera de que pueda anular, en toda la aplicación, la fecha corta predeterminada? formato?
Mi preferencia es en realidad '' aaaa-MM-dd '' como formato predeterminado, pero puedo vivir con el MM / dd / aaaa centrado en los EE. UU., ya que todos los usuarios están en los EE. UU.
Aclaración: no quiero cambiar toda la cultura predeterminada, lo que podría afectar cosas como la moneda y el uso de decimales / comas en el formato de los números.
Solo quiero anular cualquier llamada a ToString (" g ") para usar el formato de fecha ISO / IEC 8824 (" aaaa-MM-dd ").
Podría buscar y reemplazar mi código para forzar un CultureInfo en cada llamada a ToString (), pero eso no me parece la solución más fácil de mantener.
Mi solución actual es que he definido un método estático para formatear una fecha, y lo llamo en lugar de ToString () en toda mi base de código. Pero nuevamente, si me olvido de hacerlo en algún lugar del código, tendré una cita tonta nuevamente.
Solución 2
Establecer la cultura no era una opción, ni dependía de la configuración regional del servidor.
Terminé escribiendo una función de utilidad para formatear fechas:
Public Shared Function FormatShortDate(ByVal d As Date) As String
If d=#1/1/0001# Then Return ""
If d=#1/1/1900# Then Return ""
'ISO/IEC 8824 date format
Return d.ToString("yyyy-MM-dd", System.Globalization.CultureInfo.InvariantCulture)
End Function
Llamo a esto en todas partes donde necesito darle una fecha al usuario. También maneja la visualización de las fechas predeterminadas (" magic ").
Escribí algunas funciones similares para y FormatShortDateTime y FormatLongDateTime.
Otros consejos
Puede establecer la cultura predeterminada en web.config (nivel de aplicación), directiva de página o directiva de control.
Tengo varias aplicaciones donde las páginas maestras están configuradas para diferentes culturas, y las páginas y los controles heredan de allí.
Puede manipular el formato de fecha corta cambiando la configuración en la configuración regional en el panel de control de su servidor.