从XML提要解析日期字符串到DateTime
问题描述:
我有几个不同的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>
我不太清楚在这里开始,感谢您的帮助:)
答
如果格式未被识别,您将需要执行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);
}
}
你应该能够解析使用的字符串的扩展方法的值。
答
如果你知道它,说,Facebook的,并且facebook一贯使用相同的日期格式,您可以仅解析其组件(星期,月份,时间等)的字符串,将它们重新排列为C#识别的顺序,然后使用DateTime.Parse()将它们转换为日期。您必须为每个Feed有不同的重新排列方法。
例如
Thu, 12 Jan 2012 00:06:54 +0000
成为
Jan 12, 2012 00:06:54 +0000
或类似的东西(不知道C#真正分析这一点,所以根据需要进行修改)。