2011-07-26 31 views
7

Có ai biết cách chuyển đổi một số DateTime từ tiếng Anh sang tiếng Tây Ban Nha không?Chuyển đổi DateTime từ tiếng Anh sang tiếng Tây Ban Nha

ví dụ chuyển đổi:

Thứ Hai 1 tháng 1, 2011

vào

Lunes, Enero 01, 2011 ???

Xin cảm ơn trước.

+3

ngày 01 tháng 1 năm 2011 là thứ bảy. Có thể bạn sẽ không thể phân tích chính xác ngày này. –

Trả lời

5

Yyou có thể sử dụng CultureInfo để làm điều này, nếu bạn thiết lập các nền văn hóa hiện nay trong việc điều hành sợi ngày sẽ định dạng trong văn hóa đúng http://msdn.microsoft.com/en-us/library/5hh873ya.aspx

trong vb.net

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

hoặc C#

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

Bạn có thể sử dụng DateTime.ParseExact Method để phân tích cú pháp đầu vào thành giá trị DateTime bằng cách sử dụng En glish CultureInfo. Sau đó, bạn có thể sử dụng DateTime.ToString Method với một số tiếng Tây Ban Nha CultureInfo để chuyển đổi giá trị DateTime thành một chuỗi.

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" 

Hãy xem xét rằng một người sử dụng tiếng Tây Ban Nha có thể thích các định dạng chuẩn Tây Ban Nha trên định dạng tùy chỉnh của bạn mặc dù:

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

+1 để lưu ý định dạng '" dddd, MMMM dd, yyyy "' là không chuẩn trong tiếng Tây Ban Nha. –

-2

tôi vật lộn với điều này trong một thời gian - Cuối cùng đã viết chức năng của riêng tôi. Đó là trong VB nhưng tôi chắc chắn rằng bạn có thể dịch nó để C# rất dễ dàng.

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 
Các vấn đề liên quan