2015-09-20 3 views
0

У меня есть строка Wed Sep 23 2015 15:30:00 GMT-0400 (Eastern Daylight Time) в этом формате. Как я могу получить дату 23 сентября 2015 года и время 15.30. Я пробовал следовать, но он выдает исключение форматированного исключения.получить дату и время от строки

DateTime dt= DateTime.Parse(apptViewModel.strAppintmentDate).Date; 
TimeSpan tm = DateTime.Parse(apptViewModel.strAppintmentTime).TimeOfDay; 

Часовой пояс в этой строке не важен. И мне не нужно преобразовывать дату из одного часового пояса в другой.

ответ

0

Для Wed Sep 23 2015 15:30:00 GMT попробовать это

DateTime dt = DateTime.ParseExact("Wed Sep 23 2015 15:30:00 GMT", "ddd MMM dd yyyy HH:mm:ss 'GMT'K", CultureInfo.InvariantCulture); 

Для Wed Sep 23 2015 15:30:00 GMT-0400 попробовать это

DateTime dt = DateTime.ParseExact("Wed Sep 23 2015 15:30:00 GMT-0400", "ddd MMM dd yyyy HH:mm:ss 'GMT'zzz", CultureInfo.InvariantCulture); 

Если (Eastern Daylight Time) входит в дату строку, а затем попробовать этот

var dateString = "Wed Sep 23 2015 15:30:00 GMT-0400 (Eastern Daylight Time)"; 
DateTime dt = DateTime.ParseExact(dateString.Replace("(Eastern Daylight Time)", string.Empty).Trim(), "ddd MMM dd yyyy HH:mm:ss 'GMT'zzz", CultureInfo.InvariantCulture); 

Но вы также можете использовать NodaTime ,
См. Jon Skeet answer here.

+0

это дает исключение 'Исключение типа«System.FormatException»произошло в mscorlib.dll, но не был обработан в пользовательском коде Дополнительная информация: Строка не была признана в качестве действительного DateTime.' –

+0

' (по восточному поясному времени) 'включен в вашу строку даты? –

+0

Да, что включено –

Смежные вопросы