2015-09-20 45 views
0

我有一个字符串Wed Sep 23 2015 15:30:00 GMT-0400 (Eastern Daylight Time)这种格式。我怎样才能得到日期2015年9月23日和时间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的回答here

+0

它给人异常'型“System.FormatException”的异常出现在mscorlib.dll,但在用户代码中没有处理 其他信息:字符串未被识别为有效DateTime.' –

+0

'(东部夏令时间) '包含在你的日期字符串中? –

+0

是的包括 –