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

use*_*343 7 .net c# datetime datetime-format

有人知道如何将DateTime英语翻译成西班牙语吗?

例如转换:

2011年1月1日星期一

Lunes,Enero 01,2011 ???

提前致谢.

dtb*_*dtb 19

您可以使用DateTime.ParseExact方法使用英语CultureInfo将输入解析为DateTime值.然后,您可以将DateTime.ToString方法与西班牙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"
Run Code Online (Sandbox Code Playgroud)

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

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

  • 注意"dddd,MMMM dd,yyyy"格式的+1在西班牙语中是非标准的. (2认同)

Jon*_*Alb 7

您可以使用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)
Run Code Online (Sandbox Code Playgroud)

或c#

DateTime TheDate = DateTime.Parse("January 01 2011");
Thread.CurrentThread.CurrentCulture = new CultureInfo("es-ES");
Interaction.MsgBox(TheDate.ToLongDateString());
Run Code Online (Sandbox Code Playgroud)