我有一些不同的xml供稿,我正在整合到我正在处理的网站的一个“供稿”中(c#)。大多数提要遵循rss2.0标准,即新闻提要和facebook提要。然而,我也在拉Twitter,他们似乎从我能说的方面使用他们自己的标准。我有一个问题是从Facebook和Twitter上删除发布日期,因为它们的格式略有不同。
facebook = <lastBuildDate>Thu, 12 Jan 2012 00:06:54 +0000</lastBuildDate>
twitter = <created_at>Wed Jan 11 23:48:15 +0000 2012</created_at>
我不太清楚从哪里开始,谢谢你的帮助:)。
答案 0 :(得分: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);
}
}
您应该能够使用字符串上的扩展方法解析值。
答案 1 :(得分:0)
如果您知道它来自Facebook,并且facebook一直使用相同的日期格式,您只需解析其组件的字符串(星期几,月份,时间等),将它们重新排列为C#识别的订单,然后使用DateTime.Parse()将它们转换为日期。您必须为每个Feed添加不同的重新排列方法。
e.g。
Thu, 12 Jan 2012 00:06:54 +0000
变为
Jan 12, 2012 00:06:54 +0000
或类似的东西(不确定C#是否会实际解析它,因此根据需要进行修改)。