he ampliado en la sugerencia de Bart Calixto para solucionar el problema de formato aaaa dd MMM (aquí en Australia también utilizamos fecha de Reino Unido formato dd/mm/aa)
También con frecuencia necesito convertir entre los formatos de fecha Aust y US.
Este código soluciona el problema (mi versión es en VB)
Public Shared Function ToLongDateWithoutWeekDayString(source As DateTime, cult As System.Globalization.CultureInfo) As String
Return source.ToString("D", cult).Replace(source.DayOfWeek.ToString(), "").Trim(","c, " "c)
End Function
Antes de llamar a la función que necesita para establecer la cultura, lo hago de esta manera después de conseguir el país del visitante de http://ipinfo.io
Select Case Country.country
Case "AU"
cult = New CultureInfo("en-AU")
Case "US"
cult = New CultureInfo("en-US")
Case "GB"
cult = New CultureInfo("en-GB")
End Select
Dim date1 As New Date(2010, 8, 18)
lblDate.Text = ToLongDateWithoutWeekDayString(date1, cult)
Después de configurar el resultado de la cultura AU o GB es el 18 de agosto de 2010
Después de establecer el resultado de la cultura de EE. UU. Es el 18 de agosto de 2010
Adam ¿Estás de acuerdo con esto resuelve el problema de formato al que te refieres?
Gracias Bart que era un código muy agradable.
No olvides agregar Dim cult As System.Globalization.CultureInfo
después de Inherits System.Web.UI.Página
pidiendo un resultado erróneo (una cadena con el día de la semana) y tratando de munge a una forma aceptable (borrando el día de la semana) es un sustituto muy pobre para simplemente pedir una cadena de fecha formateada apropiadamente en primer lugar. –
@ Stephen: Estoy de acuerdo. Pero, ¿cómo sabes el formato adecuado para la cultura actual? El orden de Año, mes y día, los caracteres de separación, etc. etc. –
@David: exactamente, no puede. Si es importante, tendrá que buscar el formato adecuado para cada cultura, como Microsoft ha hecho con cultureInfo.DateTimeFormat.LongDatePattern. –