将xml提要中的日期字符串解析为DateTime

本文关键字:字符串 DateTime 日期 xml | 更新日期: 2023-09-27 18:20:31

我有几个不同的xml提要,我正在为我正在开发的网站(c#)将它们合并为一个"提要"。大多数提要都遵循rss2.0标准,即新闻提要和facebook提要。然而,我也在拉推特,据我所知,他们似乎使用了自己的标准。我在从脸书和推特上提取发布日期时遇到了一个问题,因为它们的格式略有不同。

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

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

我不太确定从哪里开始,感谢您的帮助:)

将xml提要中的日期字符串解析为DateTime

如果无法识别格式,则需要执行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);
    }
}

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

用作参考:C#中的Twitter日期解析

如果你知道它来自,比如说,facebook,并且facebook一直使用相同的日期格式,你可以解析它的组件(星期几、月、时间等)的字符串,将它们重新排列成C#可以识别的顺序,然后使用DateTime.Passe()将它们转换为日期。对于每个提要,您必须有不同的重新排列方法。

例如

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

成为

Jan 12, 2012 00:06:54 +0000

或者类似的东西(不确定C#是否真的会解析它,所以根据需要进行修改)。