将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>
我不太确定从哪里开始,感谢您的帮助:)
如果无法识别格式,则需要执行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#是否真的会解析它,所以根据需要进行修改)。