C# 从字符串中获取日期和时间

C# 从字符串中获取日期和时间,c#,datetime,timezone,C#,Datetime,Timezone,我有一个字符串Wed Sep 23 2015 15:30:00 GMT-0400(东部夏令时),格式如下。如何从中获取日期2015年9月23日和时间15.30。我尝试了以下操作,但它引发了无效的格式异常 DateTime dt= DateTime.Parse(apptViewModel.strAppintmentDate).Date; TimeSpan tm = DateTime.Parse(apptViewModel.strAppintmentTime).TimeOfDay; 时区在

我有一个字符串
Wed Sep 23 2015 15:30:00 GMT-0400(东部夏令时)
,格式如下。如何从中获取日期2015年9月23日和时间15.30。我尝试了以下操作,但它引发了无效的格式异常

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

时区在此字符串中不重要。而且我不必将日期从一个时区转换到另一个时区。

对于
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);
DateTime dt = DateTime.ParseExact("Wed Sep 23 2015 15:30:00 GMT-0400", "ddd MMM dd yyyy HH:mm:ss 'GMT'zzz", CultureInfo.InvariantCulture);

对于2015年9月23日星期三15:30:00 GMT-0400,请尝试以下内容

DateTime dt = DateTime.ParseExact("Wed Sep 23 2015 15:30:00 GMT", "ddd MMM dd yyyy HH:mm:ss 'GMT'K", CultureInfo.InvariantCulture);
DateTime dt = DateTime.ParseExact("Wed Sep 23 2015 15:30:00 GMT-0400", "ddd MMM dd yyyy HH:mm:ss 'GMT'zzz", CultureInfo.InvariantCulture);
如果日期字符串中包含
(东部夏时制)
,请尝试此操作

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的答案。

它给出了一个异常
类型的异常,该异常发生在mscorlib.dll中,但未在用户代码中处理。其他信息:字符串未被识别为有效的日期时间。
(东部夏时制)
包含在日期字符串中吗?仅供参考,什么是GMT和zzz?