2013-07-17 34 views
1

在ASP.NET應用程序中,我需要檢查從遠程服務器檢索某些圖像時的修改日期。爲標頭值 「的Last-Modified」 就像琴絃以下幾點:如何解析日期字符串,如'G8T'和'G12T'等時區?

  • 星期四,2011年12月8日19點57分12秒G12T
  • 星期四,2003 16點13分20秒G8T
8月14日

.NET的DateTime.Parse()方法在這些方法上失敗,出現FormatException(「該字符串未被識別爲有效的DateTime。在索引26處有一個未知單詞」。)。我可以通過哪些選項來使(ny)解析方法識別這些時區指示符?我之前沒有見過他們,並且a Google search在論壇和類似網站上出現了一些明顯的用法,但沒有提供有關他們的意思的有用信息。

(奇怪的是,對同一圖像「日期」的標題值與「GMT」結束。遠程服務器是IIS 7.5。)

回答

2

我不能輕易檢查的權利,但這種威力工作:

DateTimeOffset result = DateTimeOffset.ParseExact(text, 
    "ddd, dd MMM yyyy HH:mm:ss 'G'z'T'", 
    CultureInfo.InvariantCulture); 

這是使用z custom specifier ...這將始終格式有跡象,但可能不需要一個當解析

如果你樂於使用出血邊緣代碼,相信Noda Time 1.2(未發行)應該能夠使用ddd, dd MMM yyyy HH:mm:ss 'G'o<-H>'T'OffsetDateTimePattern與應對。再次,我現在無法測試,但我想預計它的工作。它意味着與目前雖然,未發行的代碼運行...

+0

+1與諾基亞3510幾秒鐘內寫了跳傘 –

+0

調用也產生一個出現FormatException之前(「字符串未被識別爲有效的DateTime」)。感謝您提供關於野田時間的小貼士。如果我找不到其他方法,我會研究它。 – Kimberly

+0

@Kimberly:是的,它可能是缺少一個標誌:(如果你想堅持使用.NET類型,你可以做一些字符串操作來獲得最後一點成爲更友好的格式... –