Как я могу преобразовать эту строку «вторник, 30 марта 2010 г., 10:45 утра» практически в DateTime? - PullRequest
1 голос
/ 25 марта 2010

Ну

Это строка, которую я получаю от веб-службы:

"Вторник, 30 марта 2010 г., 10:45 утра"

и мне нужно преобразовать его в DateTime.

Вы знаете простой способ добиться этого?

Спасибо

Ответы [ 7 ]

7 голосов
/ 25 марта 2010

Это в формате "F".

Это должно быть легко проанализировано

DateTime.Parse( s );

или DateTime.ParseExact (строка s, формат строки, поставщик IFormatProvider);

как

DateTime.ParseExact( s, "F", CultureInfo.InvariantCulture );
7 голосов
/ 25 марта 2010
    string strDateTime = "Tuesday, March 30, 2010 10:45 AM"; 

    DateTime myDateTime = DateTime.Parse(strDateTime);
3 голосов
/ 25 марта 2010

Не так просто, но безопаснее.

DateTime dts;
    string strDateTime = "Tuesday, March 30, 2010 10:45 AM";

if(!DateTime.tryParse(strDateTime, out dts))
     Console.WriteLine("not a date!");
2 голосов
/ 25 марта 2010

Разбор может или не может работать в зависимости от ваших настроек культуры.

Я бы порекомендовал использовать InvariantCulture, если только вы не уверены, что культура вашего компьютера настроена на работающую ("en") культуру, а не на ту, которая не работает ("ar").

DateTime.Parse("Tuesday, March 30, 2010 10:45 AM", CultureInfo.InvariantCulture )
2 голосов
/ 25 марта 2010
DateTime.Parse("Tuesday, March 30, 2010 10:45 AM")
2 голосов
/ 25 марта 2010

DateTime.Parse или DateTime.ParseExact должны делать то, что вам нужно.

1 голос
/ 25 марта 2010
...