2011-07-26 54 views
7

有人知道如何將DateTime從英語轉換爲西班牙語?將日期時間從英語轉換爲西班牙語

E.g轉換:

週一,2011年1月1日

Lunes,Enero 01,2011 ???

在此先感謝。

+3

2011年1月1日是星期六。您可能無法正確解析此日期。 –

回答

5

Yyou可以使用的CultureInfo要做到這一點,如果設置在運行當前線程文化的日期將在正確的文化格式化 http://msdn.microsoft.com/en-us/library/5hh873ya.aspx

在vb.net

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

或C#

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

您可以使用DateTime.ParseExact Method將輸入解析爲使用En的DateTime值glish CultureInfo。然後,您可以使用DateTime.ToString Method與西班牙語CultureInfoDateTime值轉換爲字符串。

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" 

認爲這是一個西班牙的用戶可能更喜歡西班牙的標準格式,在您的自定義格式,但:

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

注意到「dddd,MMMM dd,yyyy」格式的+1在西班牙語中是非標準的。 –

-2

我這個掙扎了一會兒 - 最後寫我自己的功能。它在VB中,但我相信你可以很容易地將它翻譯成C#。

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 
相關問題