2017-08-21 151 views
-2

該進來的字符串傳遞一個字符串,我不知道我是否有控制權是一個形狀像這樣:獲取日期和時間從在

Mon Aug 11 2016 12:17:19 GMT-0500 (Central Daylight Time) 

我試過的方法,如

Convert.ToDateTime() 

CType 

但這一切都拋出異常說這是不轉換爲日期時間有效的字符串。 那麼我應該如何轉換它?

+0

不,沒有。 .. – Travolta

回答

1

我建議閱讀Custom Date and Time Format Strings

在這種情況下,相應的格式字符串是:

string sample = "Mon Aug 11 2016 12:17:19 GMT-0500"; 
var dt = DateTime.ParseExact(sample.Replace("GMT-0500", "-05:00"), 
          "ddd MMM dd yyyy H:mm:ss",       
          CultureInfo.InvariantCulture); 
+0

假設文本「(中央夏令時)」需要在使用此代碼之前從字符串中刪除。 – Blackwood

+0

該怎麼辦?你能否更新代碼? – Travolta

+1

@KSNoob:請不要讓人爲你做你的工作。這裏的讀者非常樂意提供幫助,但請記住,實施應始終由您完成 - 否則您將無法學到任何新東西。 – halfer

0

您可以按空格分割字符串。然後你將有一個數組,你可以創建一個合適的字符串轉換爲日期時間。

這只是一個概念,你將不得不鍛鍊的細節。

例如,您可能需要找出月份數字。
這可以通過製作所有月份和相應數字的字典來完成。

string dateReceived = "Mon Aug 11 2016 12:17:19 GMT-0500 (Central Daylight Time)" 

string[] dateParts = dateReceived.split(' '); 

string date = dateParts[2] "/" dateParts[1] "/" dateParts[3] 
DateTime dt = Convert.ToDateTime(date);