2009-09-24 2 views
7

Ich versuche, ein DateTime-Objekt aus RSS-Feeds in C# und DateTime zu ziehen.Parse (string) war gut für den BBC rss-Feed, der ein Format wie folgt hat: Do, 24 Sep 2009 13:08:30 GMTDateTime.Parse für pubDate in RSS-Feeds

Aber wenn ich es für Engadget Feed verwenden und verwenden, die ein Datumsformat wie Thu hat, 24 Sep 2009 17:04:00 EST löst eine FormatException.

Gibt es etwas direktes, das ich hier vermisse?

+0

Dieses Datumsformat kann sehr wohl eines der schlimmsten sein, die ich kenne. –

+0

Fredrik, welcher (von den 2 Beispielen)? –

+0

@Henk: Nun, beides, vor allem aber die, die man in vielen RSS-Feeds mit diesen speziellen Zeitzonen findet. –

Antwort

5

Parsing Daten in RSS-Feeds ist sehr frustrierend. Ich stieß auf eine fantastische kostenlose Bibliothek namens Argotic Syndication Framework on CodePlex. Es funktioniert wie ein Champion und unterstützt auch ATOM-Feeds. Gibt ein nettes kleines Dataset aus einem Feed zurück, einschließlich eines Standarddatums.

+0

Auch als NuGet-Paket erhältlich. –

1

Nur geschrieben, könnte jemand anderes es nützlich finden.

/// <summary> 
/// Converts c# DateTime object into pubdate format for RSS 
/// Desired format: Mon, 28 Mar 2011 02:51:23 -0700 
/// </summary> 
/// <param name="Date">DateTime object to parse</param> 
/// <returns>Formatted string in correct format</returns> 
public static string PubDate(DateTime Date) 
{ 
    string ReturnString = Date.DayOfWeek.ToString().Substring(0,3) + ", "; 
    ReturnString += Date.Day + " "; 
    ReturnString += CultureInfo.CurrentCulture.DateTimeFormat.GetAbbreviatedMonthName(Date.Month) + " "; 
    ReturnString += Date.Year + " "; 
    ReturnString += Date.TimeOfDay + " -0700"; 

    return ReturnString; 
} 
Verwandte Themen