将DateTime从英语转换为西class牙语

有人知道如何将DateTime从英语转换为西class牙语吗?

例如转换:

2011年1月1日星期一

Lunes,Enero 01,2011 ???

提前致谢。

您可以使用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()); 

您可以使用DateTime.ParseExact方法使用英语CultureInfo将输入解析为DateTime值。 然后,您可以将DateTime.ToString方法与西class牙CultureInfo一起使用,将DateTime值转换为字符串。

 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" 

考虑到西class牙语用户可能比您的自定义格式更喜欢西class牙语标准格式:

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

获取DateTime.Now并在需要时进行翻译。

 private DateTime lastConnection = DateTime.Now; String dateString =lastConnection.ToString("dd") +" de "+ lastConnection.ToString("MMMM",new CultureInfo("es-ES"))