2015-09-20 46 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

是的包括 –