2012-05-14 39 views
2

我知道C#有一些很棒的日期轉換工具。什麼我我想知道的,如果我可以此字符串自動轉換成日期對象:這個日期是否可以自動轉換?

"Fri May 11 00:00:00 EDT 2012" 

我想我將不得不手工解析,月,日和年,但我希望內置一個更簡單的方法。任何幫助,將不勝感激。

謝謝!

+0

時區是靜態的,還是您將在不同時區獲取日期? – bdukes

+0

時區是靜態的。我真的不關心它。我只想要月,日,年。時間對於應用程序並不重要。謝謝你的幫助! – Kevin

回答

8

您可以使用DateTime.ParseExactDateTime.TryPraseExact提供自定義格式:

DateTime result; 
if (!DateTime.TryParseExact(
     "Fri May 11 00:00:00 EDT 2012", 
     "ddd MMM dd HH:mm:ss EDT yyyy", 
     CultureInfo.InvariantCulture, 
     DateTimeStyles.None, 
     out result)) { 
    // handle invalid date 
} 

所有格式選項都列在MSDN上的頁面。

+0

唯一的問題是''「EDT」部分是硬編碼的,但它看起來像適用於您的場景。 – bdukes

0

http://msdn.microsoft.com/en-us/library/xhz1w05e.aspx

看看那個。應該幫助你。

例子:

// Convert a string returned by DateTime.ToString("R"). 
     String dateString = "Sat, 10 May 2008 14:32:17 GMT"; 
     ConvertToDateTime(dateString); 
+0

我不能指望做所有的工作 –

0

是的,你可以解析字符串轉換成DateTime對象:

String format = "ddd MMM dd hh:mm:ss EDT yyyy"; 
String dateString = "Fri May 11 00:00:00 EDT 2012"; 
DateTime result = DateTime.ParseExact(dateString, format, CultureInfo.InvariantCulture); 
+0

'zzz'不會爲我解析''EDT'' ... – bdukes

+0

和11是一天不是一年 – Steve

+0

你是對的,似乎不可能解析時區......但是我認爲我的答案並不完全錯誤...... – aleroot

0

Convert.ToDateTime("Fri May 11 00:00:00 EDT 2012")應該工作得很好。

+0

無視。我錯過了那一年是在字符串的末尾。 – jdmcnair

相關問題