Строка недействительна из-за 'GMT'
и '(Hora oficial do Brasil)'
частей. Проще говоря: синтаксический анализатор не может определить, что является частью даты, а что нет.
С помощью форматированных строк вы сможете разобрать строку в формате DateTime.
см: MSDN: Custom Date and Time Format Strings
в вашем случае этот формат строки будет работать: "ddd MMM dd yyyy hh:mm:ss 'GMT'K '(Hora oficial do Brasil)'"
.
Вы можете использовать его как это:
string input = "Tue Feb 18 2014 00:00:00 GMT-0300 (Hora official do Brasil)";
string[] format = { "ddd MMM dd yyyy hh:mm:ss 'GMT'K '(Hora official do Brasil)'" };
DateTime date;
if (DateTime.TryParseExact(input, format, CultureInfo.InvariantCulture, DateTimeStyles.None, out date))
{
//Yepee the input was parsed correct
}
else
{
//system was unable to parse the string
}
Или как это, если обработка ошибок не Обязательное:
string input = "Tue Feb 18 2014 00:00:00 GMT-0300 (Hora official do Brasil)";
string format = "ddd MMM dd yyyy hh:mm:ss 'GMT'K '(Hora official do Brasil)'";
DateTime date = DateTime.ParseExact(input, format, CultureInfo.InvariantCulture);
Да, проблема, что им получать эту дату контроллера DevExpress и этот контроллер Не позволяйте мне форматировать дату. – gog
И если GMT-0300 (Hora oficial do Brasil) нестабилен? Что ты предлагаешь? – gog
@ggui К сожалению, если ваша строка нестабильна, это может быть не решение. Существуют ограниченные пользовательские строковые форматы, посмотрите MSDN ['Пользовательские строки даты и времени»] (http://msdn.microsoft.com/en-us/library/8kb3ddd4%28v=vs.110%29. ASPX) –