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

时间:2011-07-26 21:45:50

标签: c# .net datetime datetime-format

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

E.g convert:

  

2011年1月1日星期一

  

Lunes,Enero 01,2011 ???

提前致谢。

3 个答案:

答案 0 :(得分:19)

您可以使用DateTime.ParseExact Method使用英语DateTime将输入解析为CultureInfo值。然后,您可以将DateTime.ToString Method与西班牙语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"

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

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

答案 1 :(得分:6)

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

答案 2 :(得分:0)

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

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