2013-10-02 33 views
4

我試圖解析HTTP響應中Last-Modified頭的日期。如何解析從UTC UTC到DateTime的HTTP Last-Modified頭文件#

的日期顯示如下:

的Last-Modified:星期六,2006年7月1日一點50分55秒UTC

我試圖DateTime.ParseDateTime.ParseExact沒有成功。

什麼是UTC的東西在最後,爲什麼C#不想解析它?

更新:

  • 我從請求服務器是PWS/8.0.16它(我認爲)是Windows個人Web服務器...此服務器可能是罪魁禍首。 (我很想知道這個服務器是什麼)
  • 數據由jpeg圖像組成。
  • 看起來Last-Modified頭的日期格式並不總是相同的。有時候,它以UTC結束。其他與GMT。
+1

相關http://stackoverflow.com/questions/1756639/why-cant-datetime-parse-parse-utc-date – keyboardP

+0

KavenG - 如果答案對你有幫助 - 請把它提出來。如果是解決方案 - upvote +更新) – MikroDel

+0

此標頭值看起來不正確。 「UTC」不在此處,只有「GMT」,http://www.w3.org/Protocols/rfc2616/rfc2616-sec3.html#sec3.3.1(這是一個rfc1123日期)。如果它是正確的,你可以使用'DateTime.ParseExact(text,「r」,null)' –

回答

5

使用ParseExact指定輸入格式:

string inputDate = "Sat, 01 Jul 2006 01:50:55 UTC"; 

DateTime time = DateTime.ParseExact(inputDate, 
        "ddd, dd MMM yyyy HH:mm:ss 'UTC'", 
        CultureInfo.InvariantCulture.DateTimeFormat, 
        DateTimeStyles.AssumeUniversal); 
+0

如果日期總是以UTC結尾,則此解決方案非常棒。使用DateTimeStyles.AdjustToUniversal將日期保持爲UTC。否則,它將被轉換爲本地。 – KavenG