Вы можете почти сделать это, используя DateTime.ParseExact
или DateTime.TryParseExact
.Проблема заключается в том, что нет пользовательской строки формата, которая понимает сокращение часового пояса.
Если вы удалили последние 4 символа, в которых хранится часовой пояс (включая пробел), вы можете проанализировать его, используя следующий код.
var dateString = "5/29/2018 | 1:21:42 PM"; // Time-zone stripped out
if (DateTime.TryParseExact(dateString,
"M/d/yyyy | h:m:s tt",
CultureInfo.InvariantCulture,
DateTimeStyles.None,
out var theDate))
{
Console.WriteLine(theDate);
}
else
{
Console.WriteLine("Unable to parse date");
}
Чтобы применить времязона, вам нужно будет вручную вычислить смещение от UTC, читая аббревиатуру и просматривая ее как-то .