Преобразование завершилось неудачно, "дата" не была распознана как допустимая дата и время. - PullRequest
0 голосов
/ 14 июля 2020

Я пытаюсь преобразовать дату с помощью кода ниже,

string currDate = @"Fri, 10 Jul 2020 05:48:28 -0500 (CDT)";
DateTime convDate = Convert.ToDateTime(currDate);

Console.WriteLine("COnverted Date :: " + convDate.ToString("yyyy-MM-dd'T'HH:mm:ss.fffK", CultureInfo.InvariantCulture));

Но это не удалось с сообщением об ошибке ниже,

  Unhandled exception. System.FormatException: String 'Fri, 10 Jul 2020 05:48:28 -0500 (CDT)' was not recognized as a valid DateTime.

Было бы неплохо, если бы кто-нибудь помог в этом.

Спасибо,

1 Ответ

4 голосов
/ 14 июля 2020

Вы можете поместить (CDT) в одинарные кавычки в строке формата, чтобы игнорировать его при синтаксическом анализе с использованием метода DateTime.ParseExact

string currDate = @"Fri, 10 Jul 2020 05:48:28 -0500 (CDT)";
DateTime convDate = DateTime.ParseExact(currDate, "ddd, dd MMM yyyy HH:mm:ss K '(CDT)'", CultureInfo.InvariantCulture);

Он возвращает вам местную дату и время в мой конечный результат:

Дата преобразования :: 2020-07-10T13: 48: 28.000 + 03: 00

Чтобы получить UT C, вы можете передать Параметр DateTimeStyles.AdjustToUniversal в метод ParseExact. Это дает вам

Дата преобразования :: 2020-07-10T10: 48: 28.000Z

...