Конвертировать DateTime с английского на испанский - PullRequest
7 голосов
/ 27 июля 2011

Кто-нибудь знает, как конвертировать DateTime с английского на испанский?

Например, конвертировать:

Понедельник, 01 января 2011

в

Lunes, Enero 01, 2011 ???

Заранее спасибо.

Ответы [ 3 ]

19 голосов
/ 27 июля 2011

Вы можете использовать метод DateTime.ParseExact для анализа ввода в значение DateTime , используя английский CultureInfo .Затем вы можете использовать метод 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"

Рассмотримчто испанский пользователь может предпочесть испанский стандартный формат вашему пользовательскому формату:

var result = dt.ToString("D", new CultureInfo("es-ES"));
// result == "martes, 26 de julio de 2011"
6 голосов
/ 27 июля 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());
0 голосов
/ 21 марта 2018

Получите DateTime.Now и переведите, когда вам нужно.

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