将日期字符串从xml feed解析为DateTime

时间:2012-01-16 16:17:24

标签: c# xml xml-parsing

我有一些不同的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>

我不太清楚从哪里开始,谢谢你的帮助:)。

2 个答案:

答案 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);
    }
}

您应该能够使用字符串上的扩展方法解析值。

用作参考:Twitter date parsing in C#

答案 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#是否会实际解析它,因此根据需要进行修改)。