Приведение строки в DateTime - PullRequest
2 голосов
/ 13 июля 2011

У меня есть строка в формате

13 июля 2011 1:07 PM

Я хочу разыграть это как

dd/MM/yyyy HH:mm tt

    e.g: 13/7/2011 11:49:00 AM //string=Jul 13 2011  1:07PM

Я использую следующий код для приведения его к дате.

DateTime date = Convert.ToDateTime(Convert.ToDateTime(myDateString).ToString("dd/MM/yyyy HH:mm:ss"));

Это прекрасно работает, если мой день в моей строке меньше 13

Jul 12 2011  1:07PM //this will cast to desire format fine!

    Jul 13 2011  1:07PM //gives error String was not recognized as a valid DateTime. 

Я понимаю, что день считается месяцем, но я не могу найти способ преобразовать его в желаемый формат.

Ответы [ 4 ]

4 голосов
/ 13 июля 2011

См. DateTime.ParseExact:

DateTime date = DateTime.ParseExact(myDateString, "MMM dd YYYY H:mmtt", CultureInfo.InvariantCulture);

См. Также Time Format Strings

1 голос
/ 13 июля 2011

Я полагаю, вы ищете это:

Date.ParseExact("Jul 13 2011 1:07PM", "MMM d yyyy h:mmtt", Globalization.CultureInfo.InvariantCulture)
1 голос
/ 13 июля 2011

Сначала преобразуйте строку Jul 13 2011 1:07PM в дату:

var date = Convert.ToDateTime("Jul 13 2011 1:07PM");

Затем преобразуйте его в строку в формате, который вам нравится:

var dateText = date.ToString("dd/MM/yyyy HH:mm:ss");
1 голос
/ 13 июля 2011

Вы должны использовать DateTime.TryParse

DateTime dt ;
if (DateTime.TryParse("Jul 13 2011 1:07PM",out dt))
   MessageBox.Show("Converted to Date object");

Сообщите, что вы используете метод ToString(), чтобы получить желаемый результат

dt.ToString("dd/MM/yyyy HH:mm")
...