2012-01-16 20 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#真正分析这一点,所以根据需要进行修改)。