2011-07-26 14 views
7

¿Alguien sabe cómo convertir un DateTime de inglés a español?Convertir fecha y hora de inglés a español

por ejemplo convertir:

lunes por, 01 de enero de 2011

en

Lunes, Enero 01, 2011 ???

Gracias de antemano.

+3

01 de enero de 2011 es un sábado. Probablemente no podrá analizar esta fecha correctamente. –

Respuesta

5

Yyou puede utilizar CultureInfo para hacer esto, si se establece la cultura actual en el funcionamiento enhebrar la fecha se formatee en la cultura correcta http://msdn.microsoft.com/en-us/library/5hh873ya.aspx

en vb.net

Dim TheDate As DateTime = DateTime.Parse("January 01 2011") 
Thread.CurrentThread.CurrentCulture = New CultureInfo("es-ES") 
MsgBox(TheDate.ToLongDateString) 

o C#

DateTime TheDate = DateTime.Parse("January 01 2011"); 
Thread.CurrentThread.CurrentCulture = new CultureInfo("es-ES"); 
Interaction.MsgBox(TheDate.ToLongDateString()); 
17

puede utilizar el DateTime.ParseExact Method se analiza la entrada en un valor DateTime usando un baño glish CultureInfo. Luego puede usar DateTime.ToString Method con un español CultureInfo para convertir el valor DateTime en una cadena.

var input = "Tuesday, July 26, 2011"; 
var format = "dddd, MMMM dd, yyyy"; 

var dt = DateTime.ParseExact(input, format, new CultureInfo("en-US")); 

var result = dt.ToString(format, new CultureInfo("es-ES")); 
// result == "martes, julio 26, 2011" 

considerar que un usuario español podría preferir el formato estándar español sobre su formato personalizado sin embargo:

var result = dt.ToString("D", new CultureInfo("es-ES")); 
// result == "martes, 26 de julio de 2011" 
+2

+1 para anotar el formato '" dddd, MMMM dd, yyyy "' no es estándar en español. –

-2

tuve problemas con esto por un tiempo - Finalmente escribió mi propia función. Está en VB, pero estoy seguro de que puedes traducirlo a C# muy fácilmente.

Private Function FormatDate_Spanish(psDate As Date) As String 
      Dim sWeekday As String = "" 
      Dim sMonth As String = "" 
      Dim sDay As String = "" 
      Select Case DatePart(DateInterval.Weekday, psDate) 
       Case 1 
        sWeekday = "Domingo" 
       Case 2 
        sWeekday = "Lunes" 
       Case 3 
        sWeekday = "Martes" 
       Case 4 
        sWeekday = "Miercoles" 
       Case 5 
        sWeekday = "Jueves" 
       Case 6 
        sWeekday = "Viernes" 
       Case 7 
        sWeekday = "Sabado" 
      End Select 

      Select Case DatePart(DateInterval.Month, psDate) 
       Case 1 
        sMonth = "Enero" 
       Case 2 
        sMonth = "Febrero" 
       Case 3 
        sMonth = "Marzo" 
       Case 4 
        sMonth = "Abril" 
       Case 5 
        sMonth = "Mayo" 
       Case 6 
        sMonth = "Junio" 
       Case 7 
        sMonth = "Julio" 
       Case 8 
        sMonth = "Agosto" 
       Case 9 
        sMonth = "Septiembre" 
       Case 10 
        sMonth = "Octubre" 
       Case 11 
        sMonth = "Noviembre" 
       Case 12 
        sMonth = "Diciembre" 
      End Select 

      sDay = DatePart(DateInterval.Day, psDate) 

      FormatDate_Spanish = sWeekday & " " & sDay & " de " & sMonth 

     End Function 
Cuestiones relacionadas