Невозможно преобразовать строку DateTime в DateTime в C#, используя DateTime.ParseExact () - PullRequest
0 голосов
/ 10 марта 2020

Поэтому я хочу преобразовать определенную строку UT C DateTime в следующем формате 2020-04-18T20: 05: 00.000-04: 00 .

Я пытаясь использовать следующую функцию:

DateTime.ParseExact(segment.DepartureDate,"yyyy-MM-ddTHH:mm:ss.fffzzz", System.Globalization.CultureInfo.InvariantCulture, System.Globalization.DateTimeStyles.AdjustToUniversal);

для преобразования указанной выше строки даты, полученной от API, в переменную типа C# DateTime .

Но фактический результат - {19-04-2020 00:05:00} . Каким-то образом дата округляется или конвертируется, что не соответствует ожиданиям.

Также пытался Date.Parse , но это отфильтровывает смещение UT C, значение которого мне действительно нужно.

Может кто-нибудь предложить le git способ добиться этого преобразования точно. Заранее спасибо.

1 Ответ

0 голосов
/ 10 марта 2020

Если вы работаете с разными часовыми поясами (где смещение не равно смещению вашей текущей локали), и смещение важно, обычно лучше использовать DateTimeOffset вместо DateTime. DateTime имеет только свойство, определяющее его как UT C или (system-) local, но вместо этого DateTimeOffset сохраняет полное значение смещения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...