2009-09-24 23 views
7

मैं सी # और डेटटाइम में आरएसएस फ़ीड से डेटटाइम ऑब्जेक्ट खींचने की कोशिश कर रहा हूं। पर्स (स्ट्रिंग) बीबीसी आरएसएस फ़ीड के लिए ठीक काम कर रहा था, जिसमें प्रारूप है: थू, 24 सितंबर 2009 13:08:30 जीएमटीडेटटाइम। आरएसएस फ़ीड में पबडेट के लिए पर्स

लेकिन जब मैं कोशिश करता हूं और इसका उपयोग Engadget की फ़ीड के लिए करता हूं जिसमें थू जैसे दिनांक प्रारूप होते हैं, 24 सितंबर 200 9 17:04:00 ईएसटी एक प्रारूप अपवाद फेंकता है।

क्या कोई सीधी आगे है कि मैं यहां याद कर रहा हूं?

+0

वह तिथि प्रारूप बहुत खराब लोगों में से एक हो सकता है जो मुझे पता है। –

+0

फ्रेड्रिक, कौन सा (2 उदाहरणों में से)? –

+0

@ हेंक: ठीक है, दोनों, लेकिन विशेष रूप से उन लोगों को आरएसएस फ़ीड में उन विशेष समय क्षेत्रों के साथ मिलता है। –

उत्तर

5

डेटटाइम। पर्स ईएसटी को समझ में नहीं आता है। यह केवल स्ट्रिंग के अंत में जीएमटी को समझता है।

स्टैंडर्ड दिनांक और समय स्वरूप स्ट्रिंग्स लिंक: http://msdn.microsoft.com/en-us/library/az4se3k1.aspx

यहाँ एक बहुत मदद करने के लिए लिंक है ... ईएसटी और इस तरह से मान्यता प्राप्त नहीं कर रहे हैं। आरएसएस फीड में बहुत निराशा होती है

Parse DateTime with time zone of form PST/CEST/UTC/etc

+0

+1। मैंने यह खो दिया। – David

5

पार्स दिनांक: आप उन्हें समय ऑफसेट कन्वर्ट करने के लिए होगा। मैं Argotic Syndication Framework on CodePlex नामक एक शानदार मुफ्त पुस्तकालय में आया। यह एक चैंप की तरह काम करता है और एटीओएम फ़ीड का भी समर्थन करता है। मानक तिथि सहित फ़ीड से एक अच्छा छोटा डेटासेट देता है।

+0

एक NuGet पैकेज के रूप में भी उपलब्ध है। –

1

बस इसे लिखा, किसी और को यह उपयोगी लगेगा।

/// <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; 
} 
संबंधित मुद्दे