2012-11-08 26 views
1

我遇到了DateTime.ParseExact方法的問題,它拋出異常,我的輸入字符串格式不正確C#日期時間ParseExact異常

代碼如下:

class Program 
    { 
     static void Main(string[] args) 
     { 
      var rawDate = "Thu, 08 nov 2012 15:19:18 0"; 
      var _format = "ddd, dd MMM yyyy HH:mm:ss K"; 
      var date = DateTime.ParseExact(rawDate, _format, CultureInfo.InvariantCulture); 
     } 
    } 

我發現了一些類似的主題在這裏所以用確切的日期格式,沒有人有報告任何問題。

我跟着這是我的嚮導:

ddd = Three letter Day of week 
MMM = Three letter month 
dd = Two digit day of month 01-31 (use "d" for 1-31) 
HH = Hours using 24-hour clock. 00-24 (use "H" for 0-24) 
mm = Minutes. 00-59 
ss = Seconds. 00-59 
K = Time zone information 
yyyy = 4-digit year 

例外的可能是什麼原因?

預先感謝您!

+3

'K'不能像那樣工作。 – SLaks

+0

我無法修改日期。我從其他服務獲取日期值。 @SLaks:K如何運作呢? – rjovic

回答

1

時區信息看起來像是我最可能的嫌疑犯。

1

你時區是錯在你輸入的字符串 - 它需要的格式+00 :00。

要測試日期時間格式的字符串,在反向運行它們:

Console.WriteLine(DateTime.Now.ToString(_format)); 

這給

Thu, 08 Nov 2012 15:50:58 +00:00 
0

試試這個:

var _format = "ddd, dd MMM yyyy HH:mm:ss 0"; 

你就失去了時區信息,但。

+0

再次拋出同樣的異常... – rjovic