2012-01-16 22 views
3

我有幾個不同的XML提要,我正在合併爲一個「提要」我正在工作的網站(C#)。大多數Feed遵循rss2.0標準,即新聞提要和Facebook提要。但是,我也在推twitter,他們似乎使用我可以說的自己的標準。我有一個問題,從Facebook和Twitter拉出發佈日期,因爲它們的格式稍有不同。從XML提要解析日期字符串到DateTime

的Facebook = <lastBuildDate>Thu, 12 Jan 2012 00:06:54 +0000</lastBuildDate>

嘰嘰喳喳= <created_at>Wed Jan 11 23:48:15 +0000 2012</created_at>

我不太清楚在這裏開始,感謝您的幫助:)

回答

13

如果格式未被識別,您將需要執行DateTime.ParseExact。

使用下面的類:

public static class Extensions 
{ 
    public static DateTime ParseTwitterDateTime(this string date) 
    { 
     const string format = "ddd MMM dd HH:mm:ss zzzz yyyy"; 
     return DateTime.ParseExact(date, format, CultureInfo.InvariantCulture); 
    } 

    public static DateTime ParseFacebookDateTime(this string date) 
    { 
     const string format = "ddd, dd MMM yyyy HH:mm:ss zzzz"; 
     return DateTime.ParseExact(date, format, CultureInfo.InvariantCulture); 
    } 
} 

你應該能夠解析使用的字符串的擴展方法的值。

用作參考:Twitter date parsing in C#

0

如果你知道它,說,Facebook的,並且facebook一貫使用相同的日期格式,您可以僅解析其組件(星期,月份,時間等)的字符串,將它們重新排列爲C#識別的順序,然後使用DateTime.Parse()將它們轉換爲日期。您必須爲每個Feed有不同的重新排列方法。

例如

Thu, 12 Jan 2012 00:06:54 +0000 

成爲

Jan 12, 2012 00:06:54 +0000 

或類似的東西(不知道C#真正分析這一點,所以根據需要進行修改)。